
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/bashif [ $# -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
fiDOSFILE=$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?





Pingback: I migliori articoli su Ubuntu della settimana [17/09/12 - 23/09/12] | Chimera Revo
Pingback: Convertire un file dal formato Windows (DOS) in quelli Linux (Unix) - Tecnologie - Segnala Feed