885 lines
38 KiB
Text
885 lines
38 KiB
Text
NUME
|
|
dos2unix - Convertor de format de fișier text din DOS/Mac în Unix și
|
|
viceversa
|
|
|
|
SINOPSIS
|
|
dos2unix [opțiuni] [FIȘIER ...] [-n FIȘIER_INTRARE FIȘIER_IEȘIRE ...]
|
|
unix2dos [opțiuni] [FIȘIER ...] [-n FIȘIER_INTRARE FIȘIER_IEȘIRE ...]
|
|
|
|
DESCRIERE
|
|
Pachetul «dos2unix» include utilitarele "dos2unix" și "unix2dos" pentru
|
|
a converti fișierele text simplu din formatul DOS sau Mac în formatul
|
|
Unix și invers.
|
|
|
|
În fișierele text DOS/Windows, o întrerupere de linie, cunoscută și sub
|
|
numele de linie nouă, este o combinație de două caractere: un retur de
|
|
caret (CR) urmat de un salt de linie (LF). În fișierele text Unix, o
|
|
întrerupere de linie este un singur caracter: saltul de linie (LF). În
|
|
fișierele text Mac, înainte de Mac OS X, o întrerupere de linie era un
|
|
singur caracter retur de caret (CR). În prezent, Mac OS folosește
|
|
întreruperi de linie în stil Unix (LF).
|
|
|
|
Pe lângă întreruperile de linie, «dos2unix» poate converti și
|
|
codificarea fișierelor. Câteva pagini de cod DOS pot fi convertite în
|
|
Latin-1 Unix. Și fișierele Unicode Windows (UTF-16) pot fi convertite în
|
|
fișiere Unicode Unix (UTF-8).
|
|
|
|
Fișierele binare sunt omise automat, cu excepția cazului în care
|
|
conversia este forțată.
|
|
|
|
Fișierele care nu sunt obișnuite, cum ar fi directoarele și liniile de
|
|
conectare cu nume (FIFOs), sunt omise automat.
|
|
|
|
Legăturile simbolice și țintele lor sunt în mod implicit păstrate
|
|
neatinse. Legăturile simbolice pot fi înlocuite opțional sau rezultatul
|
|
poate fi scris în ținta legăturii simbolice, Scrierea la o țintă de
|
|
legătură simbolică nu este acceptată în Windows.
|
|
|
|
«dos2unix» a fost modelat după «dos2unix» din SunOS/Solaris. Există o
|
|
diferență importantă față de versiunea originală a SunOS/Solaris.
|
|
Această versiune efectuează în mod implicit conversia „în același loc”,
|
|
în cazul de față, în același fișier (mod-fișier_vechi), în timp ce
|
|
versiunea originală SunOS/Solaris acceptă doar conversia împerecheată
|
|
(mod-fișier_nou). A se vedea, de asemenea, opțiunile "-o" și "-n". O
|
|
altă diferență este că versiunea SunOS/Solaris utilizează implicit
|
|
conversia în modul *iso*, în timp ce această versiune utilizează
|
|
implicit conversia în modul *ascii*.
|
|
|
|
OPȚIUNI
|
|
-- Tratează toate opțiunile următoare ca nume de fișiere. Utilizați
|
|
această opțiune dacă doriți să convertiți fișiere ale căror nume
|
|
încep cu o liniuță. De exemplu, pentru a converti un fișier numit
|
|
„-foo”, puteți folosi această comandă:
|
|
|
|
dos2unix -- -foo
|
|
|
|
Sau în modul-fișier_nou:
|
|
|
|
dos2unix -n -- -foo ieșire.txt
|
|
|
|
--allow-chown
|
|
Permite schimbarea proprietarului fișierului în modul-fișier_vechi.
|
|
|
|
Când este utilizată această opțiune, conversia nu va fi întreruptă
|
|
atunci când utilizatorul și/sau grupul proprietar al fișierului
|
|
original nu poate fi păstrat în modul-fișier_vechi. Conversia va
|
|
continua și fișierul convertit va primi același nou proprietar ca și
|
|
cum ar fi fost convertit în modul-fișier_nou. A se vedea, de
|
|
asemenea, opțiunile "-o" și "-n". Această opțiune este disponibilă
|
|
numai dacă «dos2unix» are suport pentru păstrarea utilizatorului și
|
|
grupului proprietar al fișierelor.
|
|
|
|
-ascii
|
|
Modul de conversie implicit (între setul de caractere DOS și
|
|
ISO-8859-1). Consultați, de asemenea, secțiunea MODURI DE CONVERSIE.
|
|
|
|
-iso
|
|
Conversie între setul de caractere DOS și ISO-8859-1. Consultați, de
|
|
asemenea, secțiunea MODURI DE CONVERSIE.
|
|
|
|
-1252
|
|
Utilizează pagina de cod Windows 1252 (Europa de vest).
|
|
|
|
-437
|
|
Utilizează pagina de cod DOS 437 (SUA). Aceasta este pagina de cod
|
|
implicită utilizată pentru conversia ISO.
|
|
|
|
-850
|
|
Utilizează pagina de cod DOS 850 (Europa de vest).
|
|
|
|
-860
|
|
Utilizează pagina de cod DOS 860 (Portugalia).
|
|
|
|
-863
|
|
Utilizează pagina de cod DOS 863 (Franceza Canadiană).
|
|
|
|
-865
|
|
Utilizează pagina de cod DOS 865 (Scandinavia).
|
|
|
|
-7 Convertește caractere de 8 biți în spațiu de 7 biți.
|
|
|
|
-b, --keep-bom
|
|
Păstrează marcajul de ordine a octeților (BOM). Când fișierul de
|
|
intrare are un marcaj de ordine a octeților, scrie marcajul de
|
|
ordine a octeților în fișierul de ieșire. Acesta este comportamentul
|
|
implicit la conversia de întreruperi de linie DOS. A se vedea, de
|
|
asemenea, opțiunea "-r".
|
|
|
|
-c, --convmode MOD_CONVERSIE
|
|
Stabilește modul de conversie. Unde MOD_CONVERSIE este unul dintre:
|
|
*ascii*, *7bit*, *iso*, *mac* „ascii” fiind valoarea implicită.
|
|
|
|
-D, --display-enc COFIFICAREA
|
|
Stabilește codificarea textului afișat. Unde CODIFICAREA este una
|
|
dintre: *ansi*, *unicode*, *unicodebom*, *utf8*, *utf8bom*; „ascii”
|
|
fiind valoarea implicită.
|
|
|
|
Această opțiune este disponibilă numai în «dos2uni» pentru Windows
|
|
cu suport pentru numele fișierelor în Unicode. Această opțiune nu
|
|
are efect asupra numelor de fișiere citite și scrise, ci doar asupra
|
|
modului în care acestea sunt afișate.
|
|
|
|
Există mai multe metode de afișare a textului într-o consolă Windows
|
|
bazate pe codificarea textului. Toate acestea au propriile lor
|
|
avantaje și dezavantaje.
|
|
|
|
ansi
|
|
Metoda implicită a «dos2unix» este utilizarea textului codificat
|
|
ANSI. Avantajul este acela că este compatibilă cu versiunea
|
|
anterioară. Această opțiune funcționează cu fonturi bitmap și
|
|
TrueType. În unele regiuni, poate fi necesar să schimbați pagina
|
|
de coduri OEM DOS activă în pagina de coduri ANSI a sistemului
|
|
Windows folosind comanda "chcp", deoarece «dos2unix» utilizează
|
|
pagina de coduri a sistemului Windows.
|
|
|
|
Dezavantajul lui „ansi” este că numele fișierelor internaționale
|
|
cu caractere care nu sunt în interiorul paginii de cod implicite
|
|
a sistemului, nu sunt afișate corect. Veți vedea în schimb un
|
|
semn de întrebare sau un simbol greșit. Când nu lucrați cu nume
|
|
de fișiere străine, această metodă este OK.
|
|
|
|
unicode, unicodebom
|
|
Avantajul codificării Unicode (numele Windows pentru UTF-16)
|
|
este că textul este de obicei afișat corect. Nu este nevoie să
|
|
schimbați pagina de cod activă. Poate fi necesar să definiți
|
|
fontul consolei la un font TrueType pentru ca toate caracterele
|
|
internaționale să fie afișate corect. Când un caracter nu este
|
|
inclus în fontul TrueType, de obicei vedeți un pătrat mic,
|
|
uneori cu un semn de întrebare în el.
|
|
|
|
Când utilizați consola ConEmu, tot textul este afișat corect,
|
|
deoarece ConEmu selectează automat un font bun.
|
|
|
|
Dezavantajul unicode (UTF-16) este că nu este compatibil cu
|
|
ASCII. Ieșirea nu este ușor de gestionat atunci când o
|
|
redirecționați către alt program.
|
|
|
|
Când se folosește metoda "unicodebom", textul Unicode va fi
|
|
precedat de un BOM („Byte Order Mark” = marcaj de ordine a
|
|
octeților). Este necesar un marcaj de ordine a octeților pentru
|
|
redirecționarea corectă sau canalizarea în PowerShell.
|
|
|
|
utf8, utf8bom
|
|
Avantajul lui utf8 este faptul că este compatibil cu ASCII.
|
|
Trebuie să definiți fontul consolei la un font TrueType. Cu un
|
|
font TrueType, textul este afișat similar cu codificarea
|
|
"unicode".
|
|
|
|
Dezavantajul este că atunci când utilizați fontul bitmap
|
|
implicit, toate caracterele non-ASCII sunt afișate greșit. Nu
|
|
numai numele fișierelor Unicode, ci și mesajele traduse devin
|
|
imposibil de citit. În Windows configurat pentru o regiune din
|
|
Asia de Est, este posibil să observați o mulțime de pâlpâiri ale
|
|
consolei când mesajele sunt afișate.
|
|
|
|
Într-o consolă ConEmu, metoda de codificare utf8 funcționează
|
|
bine.
|
|
|
|
Când se folosește metoda "utf8bom", textul UTF-8 va fi precedat
|
|
de un BOM („Byte Order Mark” = marcaj de ordine a octeților).
|
|
Este necesar un marcaj de ordine a octeților pentru
|
|
redirecționarea corectă sau canalizarea în PowerShell.
|
|
|
|
Codificarea implicită poate fi schimbată cu variabila de mediu
|
|
DOS2UNIX_DISPLAY_ENC definindu-i valoarea: "unicode", "unicodebom",
|
|
"utf8" sau "utf8bom".
|
|
|
|
-e, --add-eol
|
|
Adaugă o întrerupere de linie la ultima linie, dacă nu există una.
|
|
Acest lucru funcționează pentru fiecare conversie.
|
|
|
|
Un fișier convertit din formatul DOS în formatul Unix poate să nu
|
|
aibă o întrerupere de linie pe ultima linie. Există editoare de text
|
|
care scriu fișiere de text fără o întrerupere de linie pe ultima
|
|
linie. Unele programe Unix au probleme în procesarea acestor
|
|
fișiere, deoarece standardul POSIX definește că fiecare linie
|
|
dintr-un fișier text trebuie să se încheie cu un caracter de sfârșit
|
|
de linie nouă. De exemplu, concatenarea fișierelor poate să nu dea
|
|
rezultatul așteptat.
|
|
|
|
--error-binary
|
|
Returnează o eroare atunci când un fișier binar este omis.
|
|
|
|
-f, --force
|
|
Forțează conversia fișierelor binare.
|
|
|
|
-gb, --gb18030
|
|
În Windows, fișierele UTF-16 sunt convertite implicit în UTF-8,
|
|
indiferent de configurarea locală. Utilizați această opțiune pentru
|
|
a converti fișierele UTF-16 în GB18030. Această opțiune este
|
|
disponibilă numai în Windows. A se vedea, de asemenea, secțiunea
|
|
GB18030.
|
|
|
|
-h, --help
|
|
Afișează mesajul de ajutor și iese.
|
|
|
|
-i[FLAGS], --info[=FLAGS] FILE ...
|
|
Afișează informații despre fișier. Nu se face nicio conversie.
|
|
|
|
Sunt afișate următoarele informații, în această ordine: numărul de
|
|
întreruperi de linie DOS, numărul de întreruperi de linie Unix,
|
|
numărul de întreruperi de linie Mac, marcajul de ordine a octeților,
|
|
text sau binar, numele fișierului.
|
|
|
|
Exemplu de ieșire:
|
|
|
|
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
|
|
|
|
Rețineți că, uneori, un fișier binar poate fi confundat cu un fișier
|
|
text. A se vedea, de asemenea, opțiunea "-s".
|
|
|
|
Dacă, în plus, se utilizează opțiunea "-e" sau "--add-eol", se
|
|
imprimă, de asemenea, tipul întreruperii de linie de pe ultima linie
|
|
sau "noeol", dacă nu există.
|
|
|
|
Exemplu de ieșire:
|
|
|
|
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
|
|
|
|
Opțional, pot fi adăugate fanioane suplimentare pentru a modifica
|
|
rezultatul. Se pot adăuga unul sau mai multe fanioane.
|
|
|
|
0 Afișează liniile de informații ale fișierului urmate de un
|
|
caracter null în loc de un caracter de linie nouă. Acest lucru
|
|
permite interpretarea corectă a numelor de fișiere cu spații sau
|
|
ghilimele atunci când este utilizat fanionul „c”. Utilizați
|
|
acest fanion în combinație cu opțiunea xargs(1) -0 sau "--null".
|
|
|
|
d Afișează numărul de întreruperi de linie al formatului DOS.
|
|
|
|
u Afișează numărul de întreruperi de linie al formatului Unix.
|
|
|
|
m Afișează numărul de întreruperi de linie al formatului Mac.
|
|
|
|
b Afișează marcajul de ordine a octeților.
|
|
|
|
t Indică dacă fișierul este text sau binar.
|
|
|
|
e Imprimă tipul întreruperii de linie de pe ultima linie sau
|
|
"noeol" dacă nu există.
|
|
|
|
c Afișează numai fișierele care vor fi convertite.
|
|
|
|
Cu fanionul "c", «dos2unix» va afișa numai fișierele care conțin
|
|
întreruperi de linie DOS, «unix2dos» va afișa numai numele de
|
|
fișiere care au întreruperi de linie Unix.
|
|
|
|
Dacă, în plus, se utilizează opțiunea "-e" sau "--add-eol", vor
|
|
fi afișate și fișierele cărora le lipsește o întrerupere de
|
|
linie pe ultima linie.
|
|
|
|
h Afișează titlul.
|
|
|
|
p Afișează (doar) numele fișierelor, fără ruta către ele.
|
|
|
|
Exemple:
|
|
|
|
Afișează informații pentru toate fișierele *.txt:
|
|
|
|
dos2unix -i *.txt
|
|
|
|
Afișează doar numărul de întreruperi de linie DOS și de întreruperi
|
|
de linie Unix:
|
|
|
|
dos2unix -idu *.txt
|
|
|
|
Afișează doar marcajul de ordine a octeților:
|
|
|
|
dos2unix --info=b *.txt
|
|
|
|
Listează fișierele care au întreruperi de linie DOS:
|
|
|
|
dos2unix -ic *.txt
|
|
|
|
Listează fișierele care au întreruperi de linie Unix:
|
|
|
|
unix2dos -ic *.txt
|
|
|
|
Listează fișierele care au întreruperi de linie DOS sau care nu au
|
|
întreruperi de linie pe ultima linie:
|
|
|
|
dos2unix -e -ic *.txt
|
|
|
|
Convertește numai fișierele care au întreruperi de linie DOS și lasă
|
|
celelalte fișiere neatinse:
|
|
|
|
dos2unix -ic0 *.txt | xargs -0 dos2unix
|
|
|
|
Găsește fișiere text care au întreruperi de linie DOS:
|
|
|
|
find -name '*.txt' -print0 | xargs -0 dos2unix -ic
|
|
|
|
-k, --keepdate
|
|
Păstrează marcajul de dată al fișierului de ieșire la fel ca al
|
|
fișierului de intrare.
|
|
|
|
-L, --license
|
|
Afișează licența programului.
|
|
|
|
-l, --newline
|
|
Adaugă o linie nouă suplimentară.
|
|
|
|
dos2unix: Numai întreruperile de linie DOS sunt modificate în două
|
|
întreruperi de linie Unix. În modul Mac, numai întreruperile de
|
|
linie Mac sunt modificate în două întreruperi de linie Unix.
|
|
|
|
unix2dos: Numai întreruperile de linie Unix sunt modificate în două
|
|
întreruperi de linie DOS. În modul Mac, întreruperile de linie Unix
|
|
sunt modificate în două întreruperi de linie Mac.
|
|
|
|
-m, --add-bom
|
|
Scrie un marcaj de ordine a octeților (BOM) în fișierul de ieșire.
|
|
În mod implicit, este scris un marcaj de ordine a octeților UTF-8.
|
|
|
|
Când fișierul de intrare este UTF-16 și este utilizată opțiunea
|
|
"-u", va fi scris un marcaj de ordine a octeților UTF-16.
|
|
|
|
Nu utilizați niciodată această opțiune când codificarea de ieșire
|
|
este alta decât UTF-8, UTF-16 sau GB18030. Vedeți, de asemenea,
|
|
secțiunea UNICODE.
|
|
|
|
-n, --newfile FIȘIER_INTRARE FIȘIER_IEȘIRE ...
|
|
Modul de fișier nou. Convertiți fișierul FIȘIER_INTRARE și scrieți
|
|
rezultatul în fișierul FIȘIER_IEȘIRE. Numele fișierelor trebuie să
|
|
fie date în perechi, iar numele cu metacaractere ar trebui să *nu*
|
|
fi folosite sau v-ați puteai pierde fișierele.
|
|
|
|
Persoana care începe conversia în modul-fișier_nou (pereche) va fi
|
|
proprietarul fișierului convertit. Permisiunile de citire/scriere
|
|
ale noului fișier vor fi permisiunile fișierului original minus
|
|
umask(1) al persoanei care execută conversia.
|
|
|
|
--no-allow-chown
|
|
Nu permite schimbarea proprietarului fișierului în
|
|
modul-fișier_vechi (implicit).
|
|
|
|
Anulează conversia atunci când utilizatorul și/sau grupul proprietar
|
|
al fișierului original nu poate fi păstrat în modul-fișier_vechi. A
|
|
se vedea, de asemenea, opțiunile "-o" și "-n". Această opțiune este
|
|
disponibilă doar dacă «dos2unix» are suport pentru păstrarea
|
|
dreptului de proprietate asupra fișierelor de către utilizator și
|
|
grup.
|
|
|
|
--no-add-eol
|
|
Nu adaugă o întrerupere de linie la ultima linie, dacă nu există una
|
|
(implicit).
|
|
|
|
--no-error-binary
|
|
Nu returnează o eroare atunci când un fișier binar este omis
|
|
(implicit).
|
|
|
|
-O, --to-stdout
|
|
Scrie la ieșirea standard, ca un filtru Unix. Folosiți opțiunea "-o"
|
|
pentru a reveni la modul-fișier_vechi (în același loc / în același
|
|
fișier).
|
|
|
|
În combinație cu opțiunea "-e", fișierele pot fi concatenate în mod
|
|
corespunzător. Nu se fuzionează ultima și prima linie și nici
|
|
marcajele de ordine a octeților (BOM) Unicode în mijlocul fișierului
|
|
concatenat. Exemplu:
|
|
|
|
dos2unix -e -O fișier1.txt fișier2.txt > fișier_ieșire.txt
|
|
|
|
-o, --oldfile FIȘIER ...
|
|
Modul fișier vechi. Convertește fișierul FIȘIER și suprascrie
|
|
rezultatul în el. Programul rulează implicit în acest mod. Pot fi
|
|
folosite nume cu metacaractere.
|
|
|
|
În modul-fișier_vechi (în același loc / în același fișier), fișierul
|
|
convertit primește același proprietar, grup și permisiuni de
|
|
citire/scriere ca fișierul original. De asemenea, atunci când
|
|
fișierul este convertit de un alt utilizator care are permisiuni de
|
|
scriere în fișier (de exemplu, utilizatorul root). Conversia va fi
|
|
anulată atunci când nu este posibil să se păstreze valorile
|
|
originale. Schimbarea proprietarului ar putea însemna că
|
|
proprietarul inițial nu mai poate citi fișierul. Schimbarea grupului
|
|
ar putea reprezenta un risc de securitate, fișierul ar putea fi
|
|
făcut vizibil pentru persoanele cărora nu este destinat. Păstrarea
|
|
permisiunilor de proprietar, de grup și de citire/scriere este
|
|
acceptată numai în Unix.
|
|
|
|
Pentru a verifica dacă «dos2unix» are suport pentru păstrarea
|
|
proprietății utilizatorului și grupului de fișiere, tastați
|
|
"dos2unix -V".
|
|
|
|
Conversia se face întotdeauna printr-un fișier temporar. Când apare
|
|
o eroare la jumătatea conversiei, fișierul temporar este șters și
|
|
fișierul original rămâne intact. Când conversia are succes, fișierul
|
|
original este înlocuit cu fișierul temporar. Este posibil să aveți
|
|
permisiunea de scriere în fișierul original, dar nu aveți
|
|
permisiunea de a pune aceleași proprietăți de proprietate ale
|
|
utilizatorului și/sau grupului asupra fișierului temporar ca cele pe
|
|
care le are fișierul original. Aceasta înseamnă că nu puteți păstra
|
|
utilizatorul și/sau grupul proprietar al fișierului original. În
|
|
acest caz, puteți utiliza opțiunea "--allow-chown" pentru a continua
|
|
conversia:
|
|
|
|
dos2unix --allow-chown foo.txt
|
|
|
|
O altă opțiune este să utilizați modul-fișier_nou:
|
|
|
|
dos2unix -n foo.txt foo.txt
|
|
|
|
Avantajul opțiunii "--allow-chown" este că puteți folosi
|
|
metacaractere, iar proprietățile de proprietate vor fi păstrate
|
|
atunci când este posibil.
|
|
|
|
-q, --quiet
|
|
Modul silențios. Suprimă toate avertismentele și mesajele. Valoarea
|
|
returnată este zero. Cu excepția cazului în care sunt utilizate
|
|
opțiuni greșite în linia de comandă.
|
|
|
|
-r, --remove-bom
|
|
Elimină marcajul de ordine a octeților (BOM). Nu scrie un marcaj de
|
|
ordine a octeților în fișierul de ieșire. Acesta este comportamentul
|
|
implicit la conversia întreruperilor de linie Unix. A se vedea, de
|
|
asemenea, opțiunea "-b".
|
|
|
|
-s, --safe
|
|
Omite fișierele binare (implicit).
|
|
|
|
Omiterea fișierelor binare se face pentru a evita greșelile
|
|
accidentale. Rețineți că detectarea fișierelor binare nu este 100%
|
|
sigură. Fișierele de intrare sunt scanate pentru simboluri binare
|
|
care de obicei nu se găsesc în fișierele text. Este posibil ca un
|
|
fișier binar să conțină doar caractere de text normale. Un astfel de
|
|
fișier binar va fi văzut din greșeală ca un fișier text.
|
|
|
|
În mod implicit, nu se returnează nicio eroare atunci când un fișier
|
|
binar este omis. Atunci când se utilizează opțiunea
|
|
"--error-binary", se returnează o eroare.
|
|
|
|
-u, --keep-utf16
|
|
Keep the original UTF-16 encoding of the input file. The output file
|
|
will be written in the same UTF-16 encoding, little- or big-endian,
|
|
as the input file. This prevents transformation to UTF-8. An UTF-16
|
|
BOM will be written accordingly. This option can be disabled with
|
|
the "-ascii" option.
|
|
|
|
-ul, --assume-utf16le
|
|
Presupune că formatul fișierului de intrare este UTF-16LE.
|
|
|
|
Când există un marcaj de ordine a octeților în fișierul de intrare,
|
|
marcajul de ordine a octeților are prioritate față de această
|
|
opțiune.
|
|
|
|
Când ați făcut o presupunere greșită (fișierul de intrare nu era în
|
|
format UTF-16LE) și conversia a reușit, veți obține un fișier de
|
|
ieșire UTF-8 cu text greșit. Puteți anula conversia greșită cu
|
|
iconv(1) prin conversia fișierului de ieșire UTF-8 înapoi în
|
|
UTF-16LE. Acest lucru va reface fișierul original.
|
|
|
|
Presupunerea UTF-16LE funcționează ca un *mod de conversie*. Prin
|
|
trecerea la modul *ascii* implicit, presupunerea UTF-16LE este
|
|
dezactivată.
|
|
|
|
-ub, --assume-utf16be
|
|
Presupune că formatul fișierului de intrare este UTF-16BE.
|
|
|
|
Această opțiune funcționează la fel ca și opțiunea "-ul".
|
|
|
|
-v, --verbose
|
|
Afișează mesaje detaliate. Sunt afișate informații suplimentare
|
|
despre mărcile de ordine ale octeților și cantitatea de întreruperi
|
|
de linie convertite.
|
|
|
|
-F, --follow-symlink
|
|
Urmează legăturile simbolice și convertește țintele.
|
|
|
|
-R, --replace-symlink
|
|
Înlocuiește legăturile simbolice cu fișierele convertite (fișierele
|
|
țintă originale rămân neschimbate).
|
|
|
|
-S, --skip-symlink
|
|
Păstrează legăturile simbolice și țintele neschimbate (implicit).
|
|
|
|
-V, --version
|
|
Afișează informațiile despre versiune și iese.
|
|
|
|
MODUL MAC
|
|
În mod implicit, salturile (întreruperile) de linie sunt convertite din
|
|
DOS în Unix și invers. Întreruperile de linie Mac nu sunt convertite.
|
|
|
|
În modul Mac, întreruperile de linie sunt convertite din Mac în Unix și
|
|
invers. Întreruperile de linie DOS nu sunt modificate.
|
|
|
|
Pentru a rula în modul Mac, utilizați opțiunea din linie de comandă "-c
|
|
mac" sau utilizați comenzile "mac2unix" sau "unix2mac".
|
|
|
|
MODURI DE CONVERSIE
|
|
ascii
|
|
Acesta este modul de conversie implicit. Acest mod este destinat
|
|
conversiei fișierelor codificate ASCII și compatibile cu ASCII, cum
|
|
ar fi UTF-8. Activarea modului ascii dezactivează modurile 7bit și
|
|
iso.
|
|
|
|
Dacă «dos2unix» are suport UTF-16, fișierele codificate UTF-16 sunt
|
|
convertite la codificarea caracterelor locale curente pe sistemele
|
|
POSIX și la UTF-8 pe Windows. Activarea modului ascii dezactivează
|
|
opțiunea de păstrare a codificării UTF-16 ("-u") și opțiunile de
|
|
asumare a intrării UTF-16 ("-ul" și "-ub"). Pentru a vedea dacă
|
|
«dos2unix» are suport UTF-16, tastați "dos2unix -V". A se vedea și
|
|
secțiunea UNICODE.
|
|
|
|
7bit
|
|
În acest mod, toate caracterele de 8 biți non-ASCII (cu valori de la
|
|
128 la 255) sunt convertite într-un spațiu de 7 biți.
|
|
|
|
iso Caracterele sunt convertite între un set de caractere DOS (pagina de
|
|
cod) și un set de caractere ISO ISO-8859-1 (Latin-1) în Unix.
|
|
Caracterele DOS fără echivalent ISO-8859-1, pentru care conversia nu
|
|
este posibilă, sunt convertite într-un punct. Același lucru este
|
|
valabil și pentru caracterele ISO-8859-1 fără omolog în DOS.
|
|
|
|
Când este folosită numai opțiunea "-iso", «dos2unix» va încerca să
|
|
determine pagina de cod activă. Când acest lucru nu este posibil,
|
|
«dos2unix» va folosi pagina de cod implicită CP437, care este
|
|
folosită în principal în SUA. Pentru a forța o anumită pagină de
|
|
coduri, utilizați opțiunile -437 (SUA), -850 (Europa de Vest), -860
|
|
(Portugheză), -863 (Franceză Canadiană) sau "- 865" (Scandinavă).
|
|
Pagina de coduri CP1252 (Europa de Vest) Windows este, de asemenea,
|
|
acceptată cu opțiunea -1252. Pentru alte pagini de cod, utilizați
|
|
«dos2unix» în combinație cu iconv(1). «iconv» poate converti o listă
|
|
lungă de codificări de caractere. Puteți vizualiza această listă
|
|
rulând comanda: «iconv -l».
|
|
|
|
Nu utilizați niciodată conversia ISO pe fișiere text Unicode. Acesta
|
|
va deteriora fișierele codificate UTF-8.
|
|
|
|
Câteva exemple:
|
|
|
|
Convertește din pagina de cod implicită DOS în Latin-1 Unix:
|
|
|
|
dos2unix -iso -n fișier_intrare.txt fișier_ieșire.txt
|
|
|
|
Convertește din CP850 DOS în Latin-1 Unix:
|
|
|
|
dos2unix -850 -n fișier_intrare.txt fișier_ieșire.txt
|
|
|
|
Convertește din CP1252 Windows în Latin-1 Unix:
|
|
|
|
dos2unix -1252 -n fișier_intrare.txt fișier_ieșire.txt
|
|
|
|
Convertește din CP1252 Windows în UTF-8 (Unicode) Unix:
|
|
|
|
iconv -f CP1252 -t UTF-8 fișier_intrare.txt | dos2unix > fișier_ieșire.txt
|
|
|
|
Convertește din Latin-1 Unix la pagina de cod implicită DOS:
|
|
|
|
unix2dos -iso -n fișier_intrare.txt fișier_ieșire.txt
|
|
|
|
Convertește din Latin-1 Unix în CP850 DOS:
|
|
|
|
unix2dos -850 -n fișier_intrare.txt fișier_ieșire.txt
|
|
|
|
Convertește din Latin-1 Unix în CP1252 Windows:
|
|
|
|
unix2dos -1252 -n fișier_intrare.txt fișier_ieșire.txt
|
|
|
|
Convertește din UTF-8 (Unicode) Unix în CP1252 Windows:
|
|
|
|
unix2dos < fișier_intrare.txt | iconv -f UTF-8 -t CP1252 > fișier_ieșire.txt
|
|
|
|
See also <https://czyborra.com/charsets/codepages.html> and
|
|
<https://czyborra.com/charsets/iso8859.html>.
|
|
|
|
UNICODE
|
|
Codificări
|
|
There exist different Unicode encodings. On Unix and Linux Unicode files
|
|
are typically encoded in UTF-8 encoding. On Windows Unicode text files
|
|
can be encoded in UTF-8, UTF-16, or UTF-16 big-endian, but are mostly
|
|
encoded in UTF-16 format.
|
|
|
|
Conversie
|
|
Fișierele text Unicode pot avea întreruperi de linie DOS, Unix sau Mac,
|
|
ca și fișierele text ASCII.
|
|
|
|
Toate versiunile de «dos2unix» și «unix2dos» pot converti fișiere
|
|
codificate în formatul UTF-8, deoarece UTF-8 a fost conceput pentru
|
|
compatibilitate cu ASCII.
|
|
|
|
dos2unix and unix2dos with Unicode UTF-16 support, can read little- and
|
|
big-endian UTF-16 encoded text files. To see if dos2unix was built with
|
|
UTF-16 support type "dos2unix -V".
|
|
|
|
În Unix/Linux, fișierele codificate UTF-16 sunt convertite în
|
|
codificarea caracterelor locale. Utilizați comanda locale(1) pentru a
|
|
afla care este codificarea caracterelor stabilită de localizare. Atunci
|
|
când conversia nu este posibilă, va apărea o eroare de conversie și
|
|
fișierul va fi omis.
|
|
|
|
În Windows, fișierele UTF-16 sunt convertite în mod implicit în UTF-8.
|
|
Fișierele text formatate UTF-8 sunt bine acceptate atât în Windows, cât
|
|
și în Unix/Linux.
|
|
|
|
Codificările UTF-16 și UTF-8 sunt pe deplin compatibile, nu se va pierde
|
|
text în conversie. Când apare o eroare de conversie din UTF-16 în UTF-8,
|
|
de exemplu când fișierul de intrare UTF-16 conține o eroare, fișierul va
|
|
fi omis.
|
|
|
|
Când se utilizează opțiunea "-u", fișierul de ieșire va fi scris în
|
|
aceeași codificare UTF-16 ca și fișierul de intrare. Opțiunea "-u"
|
|
împiedică conversia în UTF-8.
|
|
|
|
«dos2unix» și «unix2dos» nu au nicio opțiune de a converti fișierele
|
|
UTF-8 în UTF-16.
|
|
|
|
Modurile de conversie ISO și 7 biți nu funcționează pe fișierele UTF-16.
|
|
|
|
Marcajul de ordine a octeților
|
|
În Windows, fișierele text Unicode au de obicei un marcaj de ordine a
|
|
octeților (BOM), deoarece multe programe Windows (inclusiv Notepad)
|
|
adaugă marcajul de ordine a octeților în mod implicit. A se vedea, de
|
|
asemenea, <https://en.wikipedia.org/wiki/Byte_order_mark>.
|
|
|
|
În Unix, fișierele Unicode nu au de obicei un marcaj de ordine a
|
|
octeților (BOM). Se presupune că fișierele text sunt codificate în
|
|
codificarea caracterelor stabilită de localizare.
|
|
|
|
«dos2unix» poate detecta dacă un fișier este în formatul UTF-16 numai
|
|
dacă fișierul are un marcaj de ordine a octeților (BOM). Când un fișier
|
|
UTF-16 nu are un marcaj de ordine a octeților, «dos2unix» va vedea
|
|
fișierul ca un fișier binar.
|
|
|
|
Utilizați opțiunea "-ul" sau "-ub" pentru a converti un fișier UTF-16
|
|
fără un marcaj de ordine a octeților (BOM).
|
|
|
|
«dos2unix» nu scrie în mod implicit niciun marcaj de ordine a octeților
|
|
(BOM) în fișierul de ieșire. Cu opțiunea "-b" «dos2unix» scrie un marcaj
|
|
de ordine a octeților atunci când fișierul de intrare are un marcaj de
|
|
ordine a octeților.
|
|
|
|
«unix2dos» scrie implicit un marcaj de ordine a octeților în fișierul de
|
|
ieșire când fișierul de intrare are un marcaj de ordine a octeților.
|
|
Utilizați opțiunea "-r" pentru a elimina un marcaj de ordine a
|
|
octeților.
|
|
|
|
«dos2unix» și «unix2dos» scriu întotdeauna un marcaj de ordine a
|
|
octeților atunci când se utilizează opțiunea "-m".
|
|
|
|
Nume de fișiere Unicode în Windows
|
|
«dos2unix» are suport opțional pentru citirea și scrierea numelor de
|
|
fișiere Unicode în linia de comandă Windows. Asta înseamnă că «dos2unix»
|
|
poate deschide fișiere care au caractere în nume care nu fac parte din
|
|
pagina de cod ANSI implicită a sistemului. Pentru a vedea dacă
|
|
«dos2unix» pentru Windows a fost construit cu suport pentru nume de
|
|
fișier Unicode, tastați: "dos2unix -V".
|
|
|
|
Există unele probleme cu afișarea numelor de fișiere Unicode într-o
|
|
consolă Windows. Vedeți opțiunea "-D", "--display-enc". Numele
|
|
fișierelor pot fi afișate greșit în consolă, dar fișierele vor fi scrise
|
|
cu numele corect.
|
|
|
|
Exemple Unicode
|
|
Convertește din UTF-16 Windows (fără BOM) în UTF-8 Unix:
|
|
|
|
dos2unix -n fișier_intrare.txt fișier_ieșire.txt
|
|
|
|
Convertește din UTF-16LE Windows (fără BOM) în UTF-8 Unix:
|
|
|
|
dos2unix -ul -n fișier_intrare.txt fișier_ieșire.txt
|
|
|
|
Convertește din UTF-8 Unix în Windows UTF-8 Windows cu BOM:
|
|
|
|
unix2dos -m -n fișier_intrare.txt fișier_ieșire.txt
|
|
|
|
Convertește din UTF-8 Unix în UTF-16 Windows:
|
|
|
|
unix2dos < fișier_intrare.txt | iconv -f UTF-8 -t UTF-16 > fișier_ieșire.txt
|
|
|
|
GB18030
|
|
GB18030 este un standard guvernamental chinez. Un subset obligatoriu al
|
|
standardului GB18030 este obligatoriu oficial pentru toate produsele
|
|
software vândute în China. A se vedea, de asemenea,
|
|
<https://en.wikipedia.org/wiki/GB_18030>.
|
|
|
|
Standardul GB18030 este pe deplin compatibil cu Unicode și poate fi
|
|
considerat un format de transformare unicode. La fel ca UTF-8, GB18030
|
|
este compatibil cu ASCII. GB18030 este, de asemenea, compatibil cu
|
|
pagina de cod 936 Windows, cunoscută și sub numele de GBK.
|
|
|
|
În Unix/Linux, fișierele UTF-16 sunt convertite în GB18030 atunci când
|
|
codificarea locală este setată la GB18030. Rețineți că acest lucru va
|
|
funcționa numai dacă localizarea este acceptată de sistem. Utilizați
|
|
comanda "locale -a" pentru a obține lista localizărilor acceptate.
|
|
|
|
În Windows, trebuie să utilizați opțiunea "-gb" pentru a converti
|
|
fișierele UTF-16 în GB18030.
|
|
|
|
Fișierele codificate GB18030 pot avea un marcaj de ordine a octeților,
|
|
precum fișierele Unicode.
|
|
|
|
EXEMPLE
|
|
Citește intrarea din „stdin” (intrarea standard) și scrie ieșirea la
|
|
„stdout” (ieșirea standard):
|
|
|
|
dos2unix < a.txt
|
|
cat a.txt | dos2unix
|
|
|
|
Convertește și înlocuiește a.txt. Convertește și înlocuiește b.txt:
|
|
|
|
dos2unix a.txt b.txt
|
|
dos2unix -o a.txt b.txt
|
|
|
|
Convertește și înlocuiește a.txt în modul de conversie ascii:
|
|
|
|
dos2unix a.txt
|
|
|
|
Convertește și înlocuiește a.txt în modul de conversie ascii,
|
|
convertește și înlocuiește b.txt în modul de conversie pe 7 biți:
|
|
|
|
dos2unix a.txt -c 7bit b.txt
|
|
dos2unix -c ascii a.txt -c 7bit b.txt
|
|
dos2unix -ascii a.txt -7 b.txt
|
|
|
|
Convertește a.txt din formatul Mac în formatul Unix:
|
|
|
|
dos2unix -c mac a.txt
|
|
mac2unix a.txt
|
|
|
|
Convertește a.txt din formatul Unix în formatul Mac:
|
|
|
|
unix2dos -c mac a.txt
|
|
unix2mac a.txt
|
|
|
|
Convertește și înlocuiește a.txt, păstrând marcajul original al datei:
|
|
|
|
dos2unix -k a.txt
|
|
dos2unix -k -o a.txt
|
|
|
|
Convertește a.txt și scrie în e.txt:
|
|
|
|
dos2unix -n a.txt e.txt
|
|
|
|
Convertește a.txt și scrie în e.txt, și face ca marcajul de dată al lui
|
|
e.txt să fie la fel cu cel al lui a.txt:
|
|
|
|
dos2unix -k -n a.txt e.txt
|
|
|
|
Convertește și înlocuiește a.txt, converteștei b.txt și scrie în e.txt:
|
|
|
|
dos2unix a.txt -n b.txt e.txt
|
|
dos2unix -o a.txt -n b.txt e.txt
|
|
|
|
Convertește c.txt și scrie în e.txt, convertește și înlocuiește a.txt,
|
|
convertește și înlocuiește b.txt, convertește d.txt și scrie în f.txt:
|
|
|
|
dos2unix -n c.txt e.txt -o a.txt b.txt -n d.txt f.txt
|
|
|
|
CONVERSIE RECURSIVĂ
|
|
Într-un shell Unix, comenzile find(1) și xargs(1) pot să fie folosite
|
|
pentru a rula «dos2unix» în mod recursiv asupra tuturor fișierele text
|
|
dintr-un arbore de directoare. De exemplu, pentru a converti toate
|
|
fișierele .txt din arborele de directoare sub directorul curent,
|
|
tastați:
|
|
|
|
find . -name '*.txt' -print0 |xargs -0 dos2unix
|
|
|
|
Opțiunea find(1) "-print0" și opțiunea corespunzătoare xargs(1) -0 sunt
|
|
necesare atunci când există fișiere cu spații sau ghilimele în nume. În
|
|
caz contrar, aceste opțiuni pot fi omise. O altă opțiune este să
|
|
utilizați find(1) cu opțiunea "-exec":
|
|
|
|
find . -name '*.txt' -exec dos2unix {} \;
|
|
|
|
Într-un prompt de comandă Windows se poate folosi următoarea comandă:
|
|
|
|
for /R %G in (*.txt) do dos2unix "%G"
|
|
|
|
Utilizatorii de PowerShell pot folosi următoarea comandă a PowerShell de
|
|
Windows:
|
|
|
|
get-childitem -path . -filter '*.txt' -recurse | foreach-object {dos2unix $_.Fullname}
|
|
|
|
LOCALIZAREA
|
|
LANG
|
|
Limba principală este selectată cu variabila de mediu LANG.
|
|
Variabila LANG constă din mai multe părți. Prima parte este codul
|
|
limbii cu litere mici. Al doilea este opțional și este codul țării
|
|
cu majuscule, precedat de un caracter de subliniere. Există, de
|
|
asemenea, o a treia parte opțională: codificarea caracterelor,
|
|
precedată de un punct. Câteva exemple pentru shell-uri de tip
|
|
standard POSIX:
|
|
|
|
export LANG=nl Olandeză
|
|
export LANG=nl_NL Olandeză, Olanda
|
|
export LANG=nl_BE Olandeză, Belgia
|
|
export LANG=es_ES Spaniolă, Spania
|
|
export LANG=es_MX Spaniolă, Mexic
|
|
export LANG=en_US.iso88591 Engleză, SUA, codificarea Latin-1
|
|
export LANG=en_GB.UTF-8 Engleză, UK, codificarea UTF-8
|
|
|
|
Pentru o listă completă a codurilor de limbă și de țară, consultați
|
|
manualul «gettext»:
|
|
<https://www.gnu.org/software/gettext/manual/html_node/Usual-Languag
|
|
e-Codes.html>
|
|
|
|
În sistemele Unix, puteți utiliza comanda locale(1) pentru a obține
|
|
informații specifice despre localizare.
|
|
|
|
LANGUAGE
|
|
Cu variabila de mediu LANGUAGE puteți specifica o listă cu
|
|
prioritate de limbi, separate prin două puncte. «dos2unix» dă
|
|
preferință variabilei LANGUAGE în detrimentul variabilei LANG. De
|
|
exemplu, mai întâi olandeză și apoi germană: "LANGUAGE=nl:de". Mai
|
|
întâi trebuie să activați localizarea, definind LANG (sau LC_ALL) la
|
|
o altă valoare decât „C”, înainte de a putea utiliza o listă cu
|
|
prioritate de limbă prin variabila LANGUAGE. Consultați și manualul
|
|
«gettext»:
|
|
<https://www.gnu.org/software/gettext/manual/html_node/The-LANGUAGE-
|
|
variable.html>
|
|
|
|
Dacă selectați o limbă care nu este disponibilă, veți primi mesajele
|
|
standard în limba engleză.
|
|
|
|
DOS2UNIX_LOCALEDIR
|
|
Cu variabila de mediu DOS2UNIX_LOCALEDIR, variabila LOCALEDIR
|
|
definită în timpul compilării poate fi înlocuită. LOCALEDIR este
|
|
folosită pentru a găsi fișierele de limbă. Valoarea implicită GNU
|
|
este "/usr/local/share/locale". Opțiunea --version va afișa valoarea
|
|
pe care LOCALEDIR o utilizează.
|
|
|
|
Exemplu (shell POSIX):
|
|
|
|
export DOS2UNIX_LOCALEDIR=$HOME/share/locale
|
|
|
|
VALOAREA RETURNATĂ
|
|
La succes, se returnează zero. Când apare o eroare de sistem, va fi
|
|
returnată ultima eroare de sistem. Pentru alte erori se returnează 1.
|
|
|
|
Valoarea returnată este întotdeauna zero în modul silențios, cu excepția
|
|
cazului în care sunt utilizate opțiuni greșite ale liniei de comandă.
|
|
|
|
STANDARDE
|
|
<https://ro.wikipedia.org/wiki/Fi%C8%99ier_text>
|
|
|
|
<https://en.wikipedia.org/wiki/Carriage_return>
|
|
|
|
<https://en.wikipedia.org/wiki/Newline>
|
|
|
|
<https://ro.wikipedia.org/wiki/Unicode>
|
|
|
|
AUTORI
|
|
Benjamin Lin - <blin@socs.uts.edu.au>, Bernd Johannes Wuebben (modul
|
|
mac2unix) - <wuebben@kde.org>, Christian Wurll (adăugarea unei linii noi
|
|
suplimentare) - <wurll@ira.uka.de>, Erwin Waterlander -
|
|
<waterlan@xs4all.nl> (menținător)
|
|
|
|
Project page: <https://waterlander.net/dos2unix/>
|
|
|
|
Pagina din SourceForge a proiectului:
|
|
<https://sourceforge.net/projects/dos2unix/>
|
|
|
|
CONSULTAȚI ȘI
|
|
file(1) find(1) iconv(1) locale(1) xargs(1)
|
|
|