GNU/Linux >> Linux Esercitazione >  >> Linux

Da DOS a Unix:comandi ed esempi

Introduzione

I file creati in DOS/Windows utilizzano il ritorno a capo (\r ) e avanzamento riga (\n ) per le terminazioni di riga. Tuttavia, i file in Unix/Linux utilizzano esclusivamente l'avanzamento di riga.

Pertanto, quando trasferisci un file da un sistema all'altro, assicurati di convertire i file.

In questo tutorial imparerai come trasferire file da DOS a Unix e viceversa.

Conversione di file su Linux

Esistono diversi modi per trasferire file per utilizzare le terminazioni di riga appropriate. Converti i file usando:

  • dos2unix comando
  • unix2dos comando
  • sed command (vedi tutorial sul comando sed di Linux)
  • tr comando
  • Vi/Vim editor di testo (vedi cheat sheet dei comandi di Vim)
  • perl comando a una riga

Opzione 1:Conversione da DOS a UNIX con il comando dos2unix

Il modo più semplice per convertire le interruzioni di riga in un file di testo è utilizzare dos2unix strumento.

Installa lo strumento eseguendo il comando:

sudo apt install dos2unix

oppure:

sudo dnf install dos2unix

Se scarichi un file creato in DOS/Windows sul tuo sistema Linux, puoi convertirlo usando il dos2unix comando:

dos2unix [file_name]

Il comando converte il file senza salvarlo nel formato originale. Se vuoi salvare il file originale, aggiungi il -b attributo prima del nome del file. In questo modo viene creato un file di backup con lo stesso nome e il .bak estensione.

dos2unix -b [file_name]

Opzione 2:convertire UNIX in DOS usando il comando unix2dos

Per convertire un file creato su un sistema Linux nel formato DOS, eseguire il comando:

unix2dos [file_name]

In alternativa, aggiungi il -b attributo per salvare il file originale come backup:

unix2dos -b [file_name]

Opzione 3:utilizzo del comando sed

Puoi anche utilizzare il sed (editor di flusso) per rimuovere la riga di ritorno a capo finali. La sintassi del comando per farlo è:

sed 's/^M$//' [original_file_name]>[converted_file_name]

Invece di digitare semplicemente ^M , premi Ctrl+V seguito da Ctrl+M per inserire il simbolo di ritorno a capo. Quando si utilizza il sed comando, specificare il nome del file DOS [original_file_name] e come vuoi denominare il file convertito [converted_file_name] .

Per cambiare il formato del file da Unix a DOS , usa il comando:

sed 's/$/^M/' [original_file_name]>[converted_file_name]

Opzione 4:utilizzo del comando tr

Un altro modo per convertire un file nel formato Unix è rimuovere \r le terminazioni di riga con il tr comando. Il tr command è un'utilità della riga di comando per tradurre o eliminare caratteri.

Utilizzare il comando nel seguente formato:

tr -d '\r' < [original_file_name]>[converted_file_name]

Opzione 5:utilizzo dell'editor di testo Vim

È inoltre possibile rimuovere le terminazioni delle righe di ritorno a capo dai file in formato DOS utilizzando l'editor di testo Vi/Vim.
Apri il file in Vi/Vim:

vi [file_name]

Quindi premi : e digita il seguente comando Vi/Vim (assicurandoti di digitare Ctrl+V quindi Ctrl+m invece di ^m ):

:%s/^ m //g

Opzione 6:utilizzo di un Perl One Liner

Infine, puoi usare un comando Perl one-liner per eliminare tutti \r terminazioni di riga. Gli on-liner Pearl sono script che si adattano a una singola riga di codice.

Per sostituire tutte le terminazioni di ritorno a capo e di avanzamento riga con solo avanzamento riga:

1. Aprire il file nell'editor di testo Vi/Vim.

2. Premi : per richiedere la riga di comando.

3. Digita il seguente comando e premi Invio:

perl -pi -e 's/\r\n/\n/g' [file_name]

Dovresti vedere subito le modifiche nel file.

Esempio:conversione di un file di esempio da DOS a formato Unix

Supponiamo che tu abbia scaricato un file denominato file-dos-campione .

Aprendo il file usando l'editor di testo Vim/Vi, vedresti che dopo ogni fine riga c'è ^M (un ritorno a capo).

Un altro modo per vedere il file utilizza sia il ritorno a capo che l'avanzamento riga per le terminazioni di riga è visualizzare il file in valori ottali.

Per farlo, esegui il comando:

od -bc sample-dos-file.txt

L'output mostra il contenuto del file con i suoi valori ottali, come nell'immagine sottostante. Puoi vedere che ogni fine di riga è contrassegnata con i valori ottali 015 (\r) e 012 (\n) .

Ora, per convertire il file e rimuovere tutte le terminazioni di ritorno a capo, dovresti eseguire il comando:

dos2unix sample-dos-file

Apri lo stesso file in Vim/Vi. Non include alcun ^M simboli che segnalano la fine della riga.

Per confermare che il file è in formato Unix, puoi anche aprire e visualizzare il contenuto in valori ottali. L'output dovrebbe visualizzare solo 012 valori per \n .


Linux
  1. Comandi Linux - Panoramica ed esempi

  2. Comandi Linux:job, bg e fg

  3. Il comando AWK di Linux:esempi di sintassi di utilizzo di Linux e Unix

  4. ln Esempi di comandi in Linux

  5. file Esempi di comandi in Linux

Comando Linux WC con esempi

I comandi alias e unalias spiegati con esempi

50 Comando Linux Cut semplice e utile in Unix con esempi

Comando AWK in Linux/Unix

Comando Unix LS:15 esempi pratici

Esempi di manipolazione dei file utilizzando i comandi Tac, Rev, Paste e Join Unix