Come correggere le interruzioni di riga nei file di testo utilizzando Dos2Unix e Unix2Dos

Hai mai inviato un file di testo creato su un sistema Linux a qualcuno e gli hai fatto lamentare che sembrava sbagliato su macOS o Windows? Ciò può essere dovuto al fatto che questi sistemi gestiscono le terminazioni di riga in modo diverso. Fortunatamente, questo è facile da risolvere con un paio di utilità: Dos2Unix e Unix2Dos.

Qual è il problema con le terminazioni di riga?

Una differenza tra Windows e Linux che potrebbe rendere difficile lo scambio di file è il modo in cui contano le terminazioni di riga. Questo risale ai giorni in cui i computer utilizzavano macchine telescriventi per l’input e l’output, che erano effettivamente macchine da scrivere automatiche.

Una nuova riga, chiamata anche avanzamento riga, fa avanzare la carta di una riga e il ritorno a capo si sposta all’inizio della riga. Le interfacce della riga di comando hanno mantenuto questa convenzione di interpretazione delle nuove righe.

Windows ereditò la convenzione MS-DOS di contare una nuova riga e un ritorno a capo come una riga, mentre Linux, a sua volta, portava la tradizione Unix di contare solo le nuove righe come, beh, nuove righe.

La maggior parte delle volte, gli editor di testo sono abbastanza intelligenti da essere in grado di rilevare file creati su sistemi diversi e regolare la visualizzazione di conseguenza, ma occasionalmente potresti comunque riscontrare problemi. Potresti provare a eseguire uno script e l’interprete potrebbe generare un errore perché si aspetta che le righe finiscano in modo diverso.

Utilizzo di Dos2Unix e Unix2Dos

Fortunatamente, ci sono un paio di utilità che ti consentono di convertire le terminazioni di riga in file tra i formati. Si chiamano Dos2Unix e Unix2Dos .

Sebbene queste utilità siano comuni su molte installazioni Linux, se non sono installate sul tuo sistema, puoi scaricarle utilizzando il gestore di pacchetti predefinito.

Per convertire un file creato su un sistema Windows in Linux, usa dos2unix :

dos2unix file

… dove file è il nome del file che vuoi convertire. Questo programma convertirà il file da newline DOS a Unix sul posto, come suggerisce il nome. Se vuoi convertire una copia del file, usa l’opzione -n :

dos2unix -n file1 file2

… dove file1 e file2 sono i nomi del file originale e del file di output . Il comando unix2dos funziona allo stesso modo e accetta gli stessi argomenti.

Un’opzione alternativa consiste nell’utilizzare un editor di testo su Linux o Windows per convertire i file, poiché possono anche rilevare e modificare il comportamento di fine riga.

Correlati: Unix vs Linux: le differenze tra e perché è importante

Ora i tuoi file di testo sembrano giusti su qualsiasi sistema

Con questa coppia di utilità, puoi assicurarti che qualsiasi file di testo funzioni su Windows o Linux. La correzione delle nuove righe è ora più facile che mai con dos2unix e unix2dos.

Nel mondo reale, gli utenti Linux e gli utenti Windows hanno spesso bisogno di condividere file. Fortunatamente, è molto facile farlo in questi giorni.