NOME

dos2unix - convertitore del file testo da dos/mac a unix e viceversa

SINOSSI

dos2unix [opzioni] [FILE ...] [-n FILEIN FILEOUT ...]
unix2dos [opzioni] [FILE ...] [-n FILEIN FILEOUT ...]

DESCRIZIONE

Il pacchetto DOS2Unix include utilità C <dos2unix> e C <unix2dos> per convertire file testo semplice dal formato DOS/Mac in formato UNIX e viceversa.

Nei file testo DOS/Windows un'interruzione di riga, nota anche come newline, è una combinazione di due caratteri: un ritorno a capo (CR) seguito da un linefeed (LF). Nei file testo UNIX un'interruzione di riga è un singolo carattere: il linefeed (LF). Nei file di testo MAC, prima di Mac OS X, un'interruzione di riga era il carattere di ritorno a capo (CR). Oggi macOS usa le interuzioni di riga in stile UNIX Style (LF).

Oltre alle interruzioni di riga DOS2Unix può anche convertire la codifica dei file. Alcune pagine codice DOS possono essere convertite in Unix Latin-1. E i file Windows Unicode (UTF-16) possono essere convertiti in file UNIX Unicode (UTF-8).

I file binari vengono saltati automaticamente, a meno che la conversione non sia forzata.

I file non regolari, come cartelle e FIFO, vengono saltati automaticamente.

I collegamenti simbolici e i loro obiettivi sono mantenuti intatti per impostazione predefinita. I collegamenti simbolici possono facoltativamente essere sostituiti o l'output può essere scritto nell'obiettivo del collegamento simbolico. Windows non supporta la scrittura in un obiettivo di un collegamento simbolico.

Dos2Unix è stato modellato su dos2unix sotto SunOS/Solaris. C'è una differenza importante con la versione originale SunOS/Solaris. Questa versione esegue in modo predefinito conversione sul posto (vecchia modalità file), mentre la versione originale SunOS/Solaris supporta solo la conversione accoppiata (nuova modalità file). Vedi anche opzioni C <-o> e C <-n>. Un'altra differenza è che la versione SunOS/Solaris usa in modo predefinito la conversione della modalità <iso> mentre questa versione usa in modo predefinito la conversione della modalità <ascii>.

OPZIONI

--

Tratta tutte le seguenti opzioni come nomi di file. Usa questa opzione se vuoi convertire i file i cui nomi iniziano con un trattino. Ad esempio, per convertire un file denominato "-foo", puoi usare questo comando:

dos2unix -- -foo

O in modalità nuovo file:

dos2unix -n -- -foo out.txt
--allow-chown

Consenti la modifica della proprietà del file nella vecchia modalità file.

Quando viene usata questa opzione, la conversione non verrà interrotta quando l'utente e/o la proprietà del gruppo del file originale non possono essere preservate in modalità vecchio file. La conversione continuerà e il file convertito otterrà la stessa nuova proprietà come se fosse stato convertito in modalità nuova file. Vedi anche opzioni C <-o> e C <-n>. Questa opzione è disponibile solo se DOS2Unix supporto il mantenimento delle proprietà degli utenti e del gruppo dei file.

-ascii

Modalità di conversione predefinita. Vedi anche la sezione MODI CONVERSIONE.

-iso

Conversione tra DOS e set di caratteri ISO-8859-1. Vedi anche sezione MODI CONVERSIONE.

-1252

Usa il codice pagina Windows 1252 (Europa occidentale).

-437

Usa il codice pagina DOS 437 (US). Questa il codice pagina predefinito usata per la conversione ISO.

-850

Usa il codice pagina DOS 850 (Europa occidentale).

-860

Usa il codice pagina DOS 860 (Portoghese).

-863

Usa il codice pagina DOS 863 (Francese Canada).

-865

Usa il codice pagina DOS 865 (paesi nordici).

-7

Converti i caratteri a 8 bit in spazio a 7 bit.

-b, --keep-bom

Mantieni BOM (Byte Order Mark). Quando il file sorgente contiene un BOM, scrive un BOM nel file destinazione. Questo è il comportamento predefinito durante la conversione di un file DOS con interruzioni di riga. Vedi anche l'opzione C <-r>.

B <-c, -convmode MODOCONVESIONE>

Imposta la modalità di conversione. Dove MODOCONVESIONE può essere: |<ascii>, |<7bit>, |<iso>, |<mac> - ascii è il valore predefinito.

-D, --display-enc CODIFICA

Imposta la codifica del testo visualizzato. Dove CODIFICA può essere: <ansi>, |<unicode>, |<unicodebom>, |<utf8>, |<utf8bom> - ansi è il valore predefinito.

Questa opzione è disponibile solo in dos2unix per Windows con supporto nome file Unicode. Questa opzione non ha alcun effetto sui nomi dei file effettivi letti e scritti, ma solo su come vengono visualizzati.

Esistono diversi metodi per visualizzare il testo in una console Windows in base alla codifica del testo. Tutti i metodi hanno i loro vantaggi e svantaggi.

ansi

Il metodo predefinito di dos2unix consiste nell'usare il testo codificato ANSI. Il vantaggio è che è compatibile all'indietro. Funziona con caratteri raster e truetype. In alcune regioni potrebbe essere necessario modificare la pagina codice OEM DOS attiva nella pagina codice ANSI Windows di sistema usando il comando C <CHCP>, perché dos2unix usa la pagina codice di sistema Windows.

Lo svantaggio di ANSI è che i nomi di file internazionali con caratteri non all'interno della pagina codice predefinita del sistema non vengono visualizzati correttamente. Vedrai invece un punto interrogativo o un simbolo sbagliato. Quando non lavori con i nomi di file stranieri, questo metodo è OK.

unicode, unicodebom

Il vantaggio di Unicode (il nome di Windows per la codifica UTF-16) è che il testo viene visualizzato generalmente correttamente. Non è necessario modificare la pagina codice attivao. per visualizzare i caratteri internazionali correttamente potrebbe essere necessario impostare il carattere della console ad un carattere TrueType. Quando un carattere non è incluso nella font TrueType, di solito vedrai una piccolo quadrato, a volte con all'interno un punto interrogativo.

Quando si usa la console ConEmu, tutto il testo viene visualizzato correttamente, perché ConEmu seleziona automaticamente un font adatto.

Lo svantaggio di Unicode è che non è compatibile con ASCII. Quando si reindirizza a un altro programma l'output non è facile da gestire.

Quando viene usato il metodo C <unicodebOM>, il testo Unicode verrà preceduto con un BOM (Byte Order Mark). È necessario un BOM per il corretto re-indirizzamento o per i pipe in PowerShell.

utf8, utf8bom

Il vantaggio di UTF8 è che è compatibile con ASCII. È necessario impostare come font della console un carattere TrueType. Con una font TrueType il testo viene visualizzato in modo simile come con la codifica C <unicode>.

Lo svantaggio è che quando si usa la font raster predefinita, tutti i caratteri non ASCII vengono visualizzati errati. Non solo i nomi di file Unicode, ma anche i messaggi tradotti diventano illeggibili. In Windows configurato per una regione orientale dell'Asia, quando vengono visualizzati i messaggi, potresti vedere un sacco di sfarfallio nella console.

In una console ConEmu il metodo di codifica UTF8 funziona bene.

Quando viene usato il metodo C <utfbom>, il testo UTF-8 sarà preceduto con un BOM (Byte Order Mark). È necessario un BOM per il corretto re-indirizzamento o per i pipe in PowerShell.

La codifica predefinita può essere modificata con la variabile di ambiente DOS2UNIX_DISPLAY_ENC impostandola a unicode, unicodebom, utf8 o utf8bom.

-e, --add-eol

Aggiungi una interruzione di riga nell'ultima riga se non ce n'è una. Funziona per ogni conversione.

Un file convertito dal formato DOS al formato Unix potrebbe non avere una interruzione riga nell'ultima riga. Ci sono redattori di testo che scrivono file di testo senza interruzioni di riga nell'ultima riga. Alcuni programmi Unix hanno problemi ad elaborare questi file, perché lo standard POSIX definisce che ogni riga in un file di testo deve terminare con un carattere nuova riga. Ad esempio, i file di concatenati potrebbero non dare il risultato previsto.

-f, --force

Forza la conversione dei file binari.

-gb, --gb18030

Nei file UTF-16 di Windows sono per impostazione predefinita convertiti in UTF-8, indipendentemente dall'impostazione locale. Usa questa opzione per convertire i file UTF-16 in GB18030. Questa opzione è disponibile solo in Windows. Vedi anche sezione GB18030.

-h, --help

Visualizza la guida ed esci.

-i[FLAG], --info[=FLAG] FILE ...

Visualizza informazioni sul file. Non viene eseguita nessuna conversione.

Vengono visualizzate le seguenti informazioni, in questo ordine: numero interruzioni di riga DOS, numero interruzioni di riga Unix, numero interruzioni di riga Mac, BOM (Byte Order Mark), testo o binario, nome file.

Esempio output:

 6       0       0  no_bom    text    dos.txt
 0       6       0  no_bom    text    unix.txt
 0       0       6  no_bom    text    mac.txt
 6       6       6  no_bom    text    mixed.txt
50       0       0  UTF-16LE  text    utf16le.txt
 0      50       0  no_bom    text    utf8unix.txt
50       0       0  UTF-8     text    utf8dos.txt
 2     418     219  no_bom    binary  dos2unix.exe

Nota che a volte un file binario può essere scambiato per un file testo. Vedi anche l'opzione -s.

Se inoltre viene usata l'opzione -e o -add-eol viene visualizzato anche il tipo di interruzione riga dell'ultima riga o noeol se non c'è.

Esempio output:

6       0       0  no_bom    text   dos     dos.txt
0       6       0  no_bom    text   unix    unix.txt
0       0       6  no_bom    text   mac     mac.txt
1       0       0  no_bom    text   noeol   noeol_dos.txt

Facoltativamente possono essere impostati flag extra per modificare l'output. È possibile aggiungere una o più flag.

0

Visualizza le righe di informazione del file seguite da un carattere nullo anziché da un carattere interruzione riga. Ciò consente l'interpretazione corretta dei nomi di file con spazi o virgolette quando viene usata il flag c. Usa questo flag in combinazione con l'opzione Xargs (1) -0 o ​-null.

d

Visualizza il numero di interruzioni di riga DOS.

u

Visualizza il numero di interruzioni di riga Unix.

m

Visualizza il numero di interruzioni di riga Mac.

b

Visualizza il BOM (Byte Order Mark)

t

Visualizza se il file è testo o binario.

e

Visualizza il tipo di interruzione riga nell'ultima riga o noeol se non ce n'è.

c

Visualizza solo i file che verrebbero convertiti.

Con il flag cdos2unix visualizzerà solo i file che contengono interruzione riga DOS, unix2dos visualizzerà solo nomi di file che hanno interruzioni di riga Unix.

Se inoltre viene usata l'opzione -e o -add-eol verranno visualizzati anche i file che non hanno una interruzione riga nell'ultima riga.

h

Visualizza l'intestazione.

p

Visualizza i nomi dei file senza percorso.

Esempi:

Visualizza le info per tutti i file *.txt:

dos2unix -i *.txt

Visualizza solo il numero di interruzioni di riga DOS e interruzioni di riga Unix:

dos2unix -idu *.txt

Visualizza solo il BOM (Byte Order Mark):

dos2unix --info=b *.txt

Elenca i file che hanno interruzioni di riga DOS:

dos2unix -ic *.txt

Elenca i file che hanno interruzioni di riga Unix:

unix2dos -ic *.txt

Elenca i file che hanno interruzioni di riga DOS o non hanno una interruzione di riga nell'ultima riga:

dos2unix -e -ic *.txt

Converti solo i file che hanno interruzioni di riga DOS e lascia intatti gli altri file:

dos2unix -ic0 *.txt | xargs -0 dos2unix

Trova file di testo con interruzione di riga DOS:

find -name '*.txt' -print0 | xargs -0 dos2unix -ic
-k, --keepdate

Imposta la data del file destinazione uguale a quella del file sorgente.

-L, --license

Visualizza la licenza del programma.

-l, --newline

Aggiungi ulteriore interruzioni di riga.

dos2unix: solo le interruzioni di riga DOS vengono modificate in interruzioni di riga Unix. In modalità Mac solo le interruzioni di riga Mac vengono modificate in due interruzioni di riga Unix.

unix2dos: solo le interruzioni di riga Unix vengono modificate in due interruzioni di riga DOS. In modalità Mac, le interruzioni di riga Unix vengono modificate in due interruzioni di riga Mac.

-m, --add-bom

Scrivi un BOM (Byte Order Mark) nel file destinazione. Per impostazione predefinita viene scritto un BOM UTF-8.

Quando il file sorgente è UTF-16 e viene usata l'opzione -u, verrà scritto un BOM UTF-16.

Non usare mai questa opzione quando la codifica destinazione è diversa da UTF-8, UTF-16 o GB18030. Vedi anche Sezione UNICODE.

-n, --newfile FILEIN FILEOUT ...

Nuova modalità file. Converte il file FILEIN e scrivi l'output nel file in FILEOUT. I nomi dei file devono essere riportati in coppia e nomi e <non> è possibile usare i caratteri jolly altrimenti verranno <persi> i file.

La persona che avvia la conversione nella modalità Nuovo file (accoppiato) sarà il proprietario del file convertito. Le autorizzazioni di lettura/scrittura del nuovo file saranno le autorizzazioni del file originale meno la Umask (1) della persona che esegue la conversione.

--no-allow-chown

Non consentire la modifica della proprietà del file nella vecchia modalità file (impostazione predefinita).

Interrompi la conversione quando l'utente e/o la proprietà del gruppo del file originale non possono essere preservate in vecchia modalità vecchia file. Vedi anche opzioni -o e -n. Questa opzione è disponibile solo se dos2unix ha il supporto per preservare la proprietà degli utenti e del gruppo dei file.

--no-add-eol

Non aggiungere una interruzione di riga nell'ultima riga se non ce n'è una.

-O, --to-stdout

Scrivi su output standard, come un filtro Unix. Per tornare alla vecchia modalità file (sul posto) usa l'opzione -o.

Combinato con l'opzione -e i file possono essere correttamente concatenati. Nessuna ultima e prima riga unita e nessun BOM (Byte Order Mark) Unicode nel mezzo del file concatenato. Esempio:

dos2unix -e -O file1.txt file2.txt > destinazione.txt
-o, --oldfile FILE ...

Vecchia modalità file. Converti file file e sovrascrivi l'output. Questa è la modalità predefinita del programma. Per i nomi dei file possono essere usati i caratteri jolly.

Nella vecchia modalità file (sul posto), il file convertito ottiene lo stesso proprietario, il gruppo e le autorizzazioni di lettura/scrittura del file originale. Inoltre, quando il file viene convertito da un altro utente che ha autorizzazioni di scrittura sul file (ad es. root). La conversione verrà interrotta quando non è possibile preservare i valori originali. Il cambio del proprietario potrebbe significare che il proprietario originale non è più in grado di leggere il file. Il cambio di gruppo potrebbe essere un rischio per la sicurezza, il file potrebbe essere reso leggibile per le persone per le quali non è previsto. La conservazione del proprietario, del gruppo e delle autorizzazioni di lettura/scrittura è supportata solo su Unix.

Per verificare se dos2unix ha il supporto per preservare la proprietà dell'utente e del gruppo di file digitare dos2unix -V.

La conversione viene sempre eseguita tramite un file temporaneo. Quando si verifica un errore a metà della conversione, il file temporaneo viene eliminato e il file originale rimane intatto. Quando la conversione ha avuto esito positivo, il file originale viene sostituito con il file temporaneo. È possibile avere l'autorizzazione di scrittura sul file originale, ma nessuna autorizzazione per avere le stesse proprietà proprietà dell'utente e/o del gruppo nel file temporaneo come nel file originale. Ciò significa che non sei in grado di preservare la proprietà dell'utente e/o del gruppo del file originale. In questo caso è possibile usare l'opzione --allow-chown per continuare con la conversione:

dos2unix --allow-chown foo.txt

Un'altra opzione è usare la nuova modalità file:

dos2unix -n foo.txt foo.txt

Il vantaggio dell'opzione --allow-chwon è che puoi usare i caratteri jolly e le proprietà dl file saranno preservate quando possibile.

-q, --quiet

Modalità silenziosa. Sopprime tutti gli avvertimenti e i messaggi. Il valore di ritorno è zero. Tranne quando vengono usate opzioni di riga di comando sbagliate.

-r, --remove-bom

Rimuove il BOM (Byte Order Mark). Non scrive un BOM nel file destinazione. Questo è il comportamento predefinito durante la conversione delle interruzioni di riga Unix. Vedi anche l'opzione -b.

-s, --safe

Salta i file binari (impostazione predefinita).

Per evitare errori i file binari vengono ignorati. Tieni presente che il rilevamento di file binari non è infallibile al 100%. I file sorgenti sono scansionati alal ricerca di simboli binari che in genere non si trovano nei file di testo. È possibile che un file binario contenga solo caratteri di testo normali. Un tale file binario sarà erroneamente visto come un file di testo.

-u, --keep-utf16

Mantieni la codifica UTF-16 originale del file sorgente. Il file destinazione verrà scritto nella stessa codifica UTF-16, Little o Big Endian, come il file sorgente. Ciò impedisce la trasformazione in UTF-8. Verrà scritto un file BOM UTF-16 di conseguenza. Questa opzione può essere disabilitata con l'opzione -ascii.

-ul, --assume-utf16le

Assumi che il formato del file sorgente sia UTF-16LE.

Quando è presente un BOM (Byte Order Mark) nel file sorgente, il BOM ha la priorità su questa opzione.

Se si è fatto un presupposto errato (il file sorgente non era in formato UTF-16LE) e la conversione è riuscita, otterrai un file destinazione UTF-8 con testo errato. È possibile annullare la conversione errata con iconv(1) convertendo il file destinazione UTF-8 in UTF-16LE. Questo riporterà il file originale.

L'assunzione di UTF-16LE funziona come una modalità conversione. Passando alla modalità predefinita ascii, l'assunzione UTF-16LE è disattivata.

-ub, --assume-utf16be

Assume che il formato del file di sorgente sia UTF-16BE.

Questa opzione funziona uguale all'opzione -ul.

-v, --verbose

Visualizza messaggi dettagliati. Vengono visualizzate informazioni extra sui BOM (Byte Order Mark) sulla quantità di interruzioni di riga convertite.

Segui i collegamenti simbolici e converti gli obiettivi.

Sostituisci i collegamenti simbolici con file convertiti (i file destinazione originali rimangono invariati).

Mantieni invariati collegamenti e obiettivi simbolici (impostazione predefinita).

-V, --version

Visualizza le informazioni sulla versione ed esci.

MODO MAC

Per impostazione predefinita, le interruzioni di riga vengono convertite da DOS in Unix e viceversa. Le interruzioni di riga Mac non vengono convertite.

Nelle modalità Mac le interruzioni di riga vengono convertite da Mac in Unix e viceversa. Le interruzioni di riga DOS non vengono modificate.

Per eseguire in modalità Mac usa l'opzione della riga di comando -c mac o usa i comandi mac2unix o C <unix2mac>.

MODI CONVERSIONE

ascii

Questa è la modalità di conversione predefinita. Questa modalità è per la conversione di file codificati ASCII e compatibili ASCII, come UTF-8. L'abilitazione della modalità ascii disabilita la modalità 7bit e iso.

Se dos2unix ha il supporto UTF-16, i file codificati UTF-16 verranno convertiti nell'attuale codifica dei caratteri locali nei sistemi POSIX e in UTF-8 in Windows. Abilitando lla modalità ascii disabilita l'opzione (C <-u>) per il mantenimento della codifica UTF-16 e le opzioni per l'assunzione della codifiac del file sorgente UTF-16 (-ul e -ub). Per verificare se dos2inix supporta UTF -16 digita dos2unix -v. Vedi anche sezione UNICODE.

7bit

In questa modalità tutti i caratteri non ASCII a 8 bit (con valori da 128 a 255) vengono convertiti in uno spazio a 7 bit.

iso

I caratteri vengono convertiti in Unix da un set di caratteri DOS (pagina codice) e un set di caratteri ISO ISO-8859-1 (Latino-1). I caratteri DOS senza equivalente ISO-8859-1, per i quali non è possibile la conversione, vengono convertiti in un punto. Lo stesso avviene per i caratteri ISO-8859-1 senza controparte DOS.

Quando viene usata solo l'opzione -iso dos2unix proverà a determinare la pagina codice attiva. Quando questo non è possibile, dos2unix userà la pagina codice predefinita CP437, che viene usata principalmente negli Stati Uniti. Per forzare le opzioni di uso di una specifica pagina codice usa l'opzione -437 (US), -850 (Europa occidentale), -860 (Portoghese), -863 (Canadese francese) o - 865 (Nordico). La pagina codice Windows CP1252 (Europa occidentale) è supportata con l'opzione -1252. Per altre pagine codice usa dos2unix in combinazione con iconv(1). Iconv può convertire tra un lungo elenco di codifiche caratteri.

Non usare mai la conversione ISO con file testo Unicode. Danneggerà i file codificati UTF-8.

Alcuni esempi:

Converti dalla pagina codice DOS predefinita in Unix Latin-1:

dos2unix -iso -n in.txt out.txt

Converti da DOS CP850 in Unix Latin-1:

dos2unix -850 -n in.txt out.txt

Converti da Windows CP1252 a Unix Latin-1:

dos2unix -1252 -n in.txt out.txt

Converti da Windows CP1252 in Unix UTF-8 (Unicode):

iconv -f CP1252 -t UTF-8 in.txt | dos2unix > out.txt

Converti da UNIX Latin-1 in Pagina codice DOS predefinita:

unix2dos -iso -n in.txt out.txt

Converti da Unix Latin-1 in DOS CP850:

unix2dos -850 -n in.txt out.txt

Converti da Unix Latin-1 in Windows CP1252:

unix2dos -1252 -n in.txt out.txt

Converti da Unix UTF-8 (Unicode) in Windows CP1252:

unix2dos < in.txt | iconv -f UTF-8 -t CP1252 > out.txt

Vedi anche http://czyborra.com/charsets/codepages.html e http://czyborra.com/charsets/iso8859.html.

UNICODE

Codifiche

Esistono diverse codifiche Unicode. I file Unix e Linux Unicode sono in genere codificati nella codifica UTF-8. I file di testo di Windows Unicode possono essere codificati in UTF-8, UTF-16 o UTF-16 Big Endian, ma sono per lo più codificati in formato UTF-16.

Conversione

I file di testo Unicode possono avere interruzione di riga DOS, Unix o Mac, come i file di testo ASCII.

Tutte le versioni di dos2unix e unix2dos possono convertire i file codificati UTF-8, poiché UTF-8 è stato progettato per la compatibilità all'indietro con ASCII.

dos2unix e unix2dos con supporto Unicode UTF-16, possono leggere file di testo codificati Little e Big Endian. Per verificare se dos2unix ha il supporto UTF -16 usa dos2unix -V.

I file codificati Unix/Linux UTF-16 vengono convertiti nella codifica dei caratteri locali. Usa il comando locale(1) per scoprire qual è la codifica del carattere locale. Quando la conversione non è possibile si verificherà un errore di conversione e il file verrà saltato.

I file di Windows UTF-16 sono per impostazione predefinita convertiti in UTF-8. I file di testo formattati UTF-8 sono ben supportati in Windows e Unix/Linux.

La codifica UTF-16 e UTF-8 sono completamente compatibili, e nella conversione non si perderà alcun testo. Quando si verifica un errore di conversione UTF-16 a UTF-8, ad esempio quando il file sorgente UTF-16 contiene un errore, il file verrà saltato.

Quando viene usata l'opzione -u, il file destinazione verrà scritto nella stessa codifica UTF-16 del file sorgente. L'opzione -u impedisce la conversione in UTF-8.

dos2unix e unix2dos non hanno alcuna opzione per convertire i file UTF-8 in UTF-16.

La conversione della modalità ISO e a 7 bit non funziona con i file UTF-16.

Byte Order Mark

I file di testo Windows Unicode in genere hanno un BOM (Byte Order Mark)), poiché molti programmi di Windows (incluso il Blocco Note) aggiungono BOM per impostazione predefinita. Vedi anche https://en.wikipedia.org/wiki/byte_order_mark.

I file Unicode Unix in genere non hanno un BOM. Si presume che i file di testo siano codificati nella codifica dei caratteri locali.

dos2unix può rilevare solo se un file è in formato UTF-16 se il file ha una BOM. Quando un file UTF-16 non ha un BOM, dos2Unix vedrà il file come un file binario.

Per convertire un file UTF-16 senza BOM usa l'opzione -ul o -ub.

Per impostazione predefinita dos2Unix non scrive i BOM nel file destinazione. Con l'opzione -b dos2unix scrive un BOM quando il file sorgente contiene un BOM.

Per impostazione predefinita unix2dos quando il file sorgente contiene un BOM scrive un BOM nel file destinazione. Per rimuovere il BOM nel file destinazione usa l'opzione -r.

Quando viene usata l'opzione -m dos2unix e unix2dos scrivono sempre un BOM.

Nomi file Unicode in Windows

dos2unix dispone di un supporto opzionale per la lettura e la scrittura di nomi di file Unicode nel prompt dei comandi di Windows. Ciò significa che dos2unix può aprire file che dispongono di caratteri nel nome che non fanno parte della pagina codice ANSI predefinita del sistema. Per verificare se dos2unix per Windows dispone del supporto del nome file Unicode usa dosunix -V.

Ci sono alcuni problemi con la visualizzazione di nomi di file Unicode in una console Windows. Vedi l'opzione -d, -display-enc. I nomi dei file possono essere visualizzati erroneamente nella console, ma i file verranno scritti con il nome corretto.

Esempi Unicode

Converti da Windows UTF-16 (con BOM) in Unix UTF-8:

dos2unix -n in.txt out.txt

Converti da Windows UTF-16LE (senza BOM) in Unix UTF-8:

dos2unix -ul -n in.txt out.txt

Converti da Unix UTF-8 a Windows UTF-8 con BOM:

unix2dos -m -n in.txt out.txt

Converti da Unix UTF-8 in Windows UTF-16:

unix2dos < in.txt | iconv -f UTF-8 -t UTF-16 > out.txt

GB18030

GB18030 è uno standard del governo cinese. Per tutti i prodotti software venduti in Cina è ufficialmente richiesto un sottoinsieme obbligatorio dello standard GB18030. Vedi anche https://en.wikipedia.org/wiki/GB_18030.

GB18030 è completamente compatibile con Unicode e può essere considerato un formato di trasformazione Unicode. Come UTF-8, GB18030 è compatibile con ASCII. GB18030 è anche compatibile con il codice pagina Windows 936, noto anche come GBK.

Quando la codifica locale è impostata su GB18030 i file Unix/Linux UTF-16 vengono convertiti in GB18030. Nota che questo funzionerà solo se la locale è supportata dal sistema. Per ottenere l'elenco dei locali supportati usa il comando locale -a .

In Windows per convertire i file UTF-16 in GB18030 è necessario usare l'opzione -GB.

I file codificati GB18030 possono avere un BOM (Byte Order Mark), come i file Unicode.

ESEMPI

Leggi l'input da 'stdin' e scrivi l'output a 'stdout':

dos2unix < a.txt
cat a.txt | dos2unix

Converti e sostituisci A.txt. Converti e sostituisci b.txt:

dos2unix a.txt b.txt
dos2unix -o a.txt b.txt

Converti e sostituisci A.txt in modalità conversione ASCII:

dos2unix a.txt

Converti e sostituisci a.txt in modalità di conversione ASCII, converti e sostituisci B.txt in modalità di conversione a 7 bit:

dos2unix a.txt -c 7bit b.txt
dos2unix -c ascii a.txt -c 7bit b.txt
dos2unix -ascii a.txt -7 b.txt

Converti a.txt dal formato Mac in formato Unix:

dos2unix -c mac a.txt
mac2unix a.txt

Converti a.txt dal formato Unix in formato Mac:

unix2dos -c mac a.txt
unix2mac a.txt

Converti e sostituisci a.txt mantenendo data/ora del file originale:

dos2unix -k a.txt
dos2unix -k -o a.txt

Converti a.txt e scrivi in ​​e.txt:

dos2unix -n a.txt e.txt

Converti a.txt e scrivi in ​​e.txt, usa come data/ora di e.txt data/ora di a.txt:

dos2unix -k -n a.txt e.txt

Converti e sostituisci a.txt, converti c.txt e scrivi in e.txt:

dos2unix a.txt -n b.txt e.txt
dos2unix -o a.txt -n b.txt e.txt

Converti c.txt e scrivi in ​​e.txt, converti e sostituisci a.txt, converti e sostituisci b.txt, converti d.txt e scrivi in ​​f.txt:

dos2unix -n c.txt e.txt -o a.txt b.txt -n d.txt f.txt

CONVERSIONE RICORSIVA

In una shell Unix per eseguire dos2unix in modo ricorsivo su tutti i file di testo nella struttura di una cartella possono essere usati i comandi trova (1) e xargs (1). Ad esempio per convertire tutti i file .txt nella struttura di una cartella digita:

find . -name '*.txt' -print0 |xargs -0 dos2unix

Quando ci sono file con spazi o virgolette nel nome è necessaria l'opzione trova(1) -print0 e la corrispondente opzione xargs (1) -0. Altrimenti queste opzioni possono essere omesse. Un'altra opzione è usare trova(1) con l'opzione -exec:

find . -name '*.txt' -exec dos2unix {} \;

In un prompt del comando di Windows è possibile usare il seguente comando:

for /R %G in (*.txt) do dos2unix "%G"

Gli utenti PowerShell possono usare Windows PowerShell il seguente comando in:

get-childitem -path . -filter '*.txt' -recurse | foreach-object {dos2unix $_.NomeCompleto}

LOCALIZZAZIONE

LANG

La lingua primaria è selezionata con la variabile ambiente LANG. La variabile LANG è costituita da diverse parti. La prima parte è in piccole lettere il codice linguistico. La seconda parte è facoltativa ed è il codice del paese in lettere maiuscole, preceduto con un trattino basso. C'è anche una terza parte opzionale: la codifica dei caratteri, preceduta con un punto. Alcuni esempi di tipi di shell standard POSIX:

export LANG=nl               Dutch
export LANG=nl_NL            Dutch, The Netherlands
export LANG=nl_BE            Dutch, Belgium
export LANG=es_ES            Spanish, Spain
export LANG=es_MX            Spanish, Mexico
export LANG=en_US.iso88591   English, USA, Latin-1 encoding
export LANG=en_GB.UTF-8      English, UK, UTF-8 encoding

Per un elenco completo dei codici linguistici e dei paesi, consulta il manuale gettext: https://www.gnu.org/software/gettext/manual/html_node/usual-language-codes.html

In sistemi UNIX è possibile usare il comando locale(1) per ottenere informazioni specifiche sulla localizzazione.

LANGUAGE

Con la variabile ambiente LANGUAGE è possibile specificare un elenco prioritario di lingue, separato dai due punti. dos2unix dà la priorità a LANGUAGE rispetto a LANG. Ad esempio, prima olandese e poi tedesco: LANGUAGE=nl: de. Prima di poter usare un elenco di priorità linguistiche attraverso la variabile LANGUAGE, devi abilitare la localizzazione, impostando LANG (o LC_ALL) ad un valore diverso da "C". Vedi anche il manuale gettext: https://www.gnu.org/software/gettext/manual/html_node/the-language-variable.html

Se selezioni una lingua che non è disponibile, riceverai i messaggi in Inglese standard.

DOS2UNIX_LOCALEDIR

Durante la compilazione può essere annullato il set LOCALEDIR tramite la variabile ambiente DOS2UNIX_LOCALEDIR. LOCALEDIR viene usato per trovare i file lingua. Il valore predefinito GNU è C </usr/local/share/locale>. L'opzione B <--version> visualizzerà il LOCALEDIR che verrà usato.

Esempio (Shell POSIX):

export DOS2UNIX_LOCALEDIR=$HOME/share/locale

VALORE DI RITORNO

In caso di operazione completata senza errori, verrà restituito il valore 0. Quando si verifica un errore di sistema, verrà restituito l'ultimo errore di sistema. Per altri errori viene restituito il valore 1.

Il valore restituito è sempre 0 in modalità silenziosa, tranne quando vengono usate opzioni della riga di comando errate.

STANDARD

https://en.wikipedia.org/wiki/Text_file

https://en.wikipedia.org/wiki/Carriage_return

https://en.wikipedia.org/wiki/Newline

https://en.wikipedia.org/wiki/Unicode

AUTORI

Benjamin Lin - <blin@socs.uts.edu.au>, Bernd Johannes Wuebben (modo mac2unix) - <wuebben@kde.org>, Christian Wurll (aggiunta interruzioni di riga extra) - <wurll@ira.uka.de>, Erwin Waterlander - <waterlan@xs4all.nl> (maintainer)

Pagina progetto: https://waterlan.home.xs4all.nl/dos2unix.html

Pagina SourceForge: https://sourceforge.net/projects/dos2unix/

VEDI ANCHE

file(1) find(1) iconv(1) locale(1) xargs(1)