Convertire un file dal formato Windows (DOS) in quelli Linux (Unix)

Scritto il 18/09/2012 - 10:51 da Gaetano Abatemarco

Ecco uno dei problemi più comuni che esista! Se avete un file di testo che contiene un formato tra DOS/Windows, e per qualche ragione dovete convertirlo in uno Linux/Unix, sarete consapevoli consapevoli del problema “fine linea”. Sotto DOS ogni riga di testo termina con CR/LF (Carriage Return/Line Feed), mentre sotto Linux solo con LF sotto Linux. Se si modifica un file di testo DOS sotto Linux, ogni riga probabilmente finirà con uno strano carattere: per evitare il problema, dunque, di seguito è riportato un semplice script che permette di converte i file in formato DOS nel formato Unix!

So già cosa vorreste dirmi, quindi vi anticipo io: potete anche utilizzare i comandi Linux dos2unix e unix2dos che fanno esattamente la stessa cosa, ma utilizzare lo script è comunque più figo, bisogna ammetterlo! :P

Aprite un file di testo ed incollateci il seguente codice:

#!/bin/bash

if [ $# -ne 1 ]; then
echo "Inserisci il path giusto di un file in formato DOS"
exit
fi

if [ ! -f "$1" ]; then
echo "Impossibile accedere al file: $1"
echo "Fornisci un file valido."
exit
fi

DOSFILE=$1
UNIXFILE=output.unix
CR='\015'

tr -d $CR < $DOSFILE > $UNIXFILE

echo "Tutto ok, conversione terminata!"
echo "Ecco il nuovo file di output creato: $UNIXFILE"
exit

Ora salvate lo script assegnando come nome del file, ad esempio, conv_dosunix.sh . Un esempio di utilizzo è il seguente:

./conv_dosunix.sh output.txt

Dove nel file output.txt troverete il file convertito nel formato Unix! Semplice, non è vero?

via

CEO & Founder di Chimera Revo. Laureato in Informatica, sono un appassionato della tecnologia in generale, tra cui Android. Utilizzo Linux da oramai molti anni ma non disdegno anche gli altri OS. Sono anche tifosissimo della Juventus!