dos2unix - convertitore del file testo da dos/mac a unix e viceversa
dos2unix [opzioni] [FILE ...] [-n FILEIN FILEOUT ...]
unix2dos [opzioni] [FILE ...] [-n FILEIN FILEOUT ...]
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>.
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
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.
Modalità di conversione predefinita. Vedi anche la sezione MODI CONVERSIONE.
Conversione tra DOS e set di caratteri ISO-8859-1. Vedi anche sezione MODI CONVERSIONE.
Usa il codice pagina Windows 1252 (Europa occidentale).
Usa il codice pagina DOS 437 (US). Questa il codice pagina predefinito usata per la conversione ISO.
Usa il codice pagina DOS 850 (Europa occidentale).
Usa il codice pagina DOS 860 (Portoghese).
Usa il codice pagina DOS 863 (Francese Canada).
Usa il codice pagina DOS 865 (paesi nordici).
Converti i caratteri a 8 bit in spazio a 7 bit.
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>.
Imposta la modalità di conversione. Dove MODOCONVESIONE può essere: |<ascii>, |<7bit>, |<iso>, |<mac> - ascii è il valore predefinito.
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.
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.
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.
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
.
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.
Forza la conversione dei file binari.
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.
Visualizza la guida ed esci.
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.
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
.
Visualizza il numero di interruzioni di riga DOS.
Visualizza il numero di interruzioni di riga Unix.
Visualizza il numero di interruzioni di riga Mac.
Visualizza il BOM (Byte Order Mark)
Visualizza se il file è testo o binario.
Visualizza il tipo di interruzione riga nell'ultima riga o noeol
se non ce n'è.
Visualizza solo i file che verrebbero convertiti.
Con il flag c
dos2unix 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.
Visualizza l'intestazione.
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
Imposta la data del file destinazione uguale a quella del file sorgente.
Visualizza la licenza del programma.
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.
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.
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.
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.
Non aggiungere una interruzione di riga nell'ultima riga se non ce n'è una.
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
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.
Modalità silenziosa. Sopprime tutti gli avvertimenti e i messaggi. Il valore di ritorno è zero. Tranne quando vengono usate opzioni di riga di comando sbagliate.
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
.
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.
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
.
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.
Assume che il formato del file di sorgente sia UTF-16BE.
Questa opzione funziona uguale all'opzione -ul
.
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).
Visualizza le informazioni sulla versione ed esci.
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>.
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.
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.
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.
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.
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.
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.
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.
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 è 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.
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
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}
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.
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.
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
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.
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
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/
file(1) find(1) iconv(1) locale(1) xargs(1)