dos2unix(1) 2024-01-22 dos2unix(1) NUME dos2unix - Convertor de format de fiier text din DOS/Mac in Unix i viceversa REZUMAT dos2unix [opiuni] [FIIER ...] [-n FIIER_INTRARE FIIER_IEIRE ...] unix2dos [opiuni] [FIIER ...] [-n FIIER_INTRARE FIIER_IEIRE ...] DESCRIERE Pachetul <> include utilitarele "dos2unix" i "unix2dos" pentru a converti fiierele text simplu din formatul DOS sau Mac in formatul Unix i invers. In fiierele text DOS/Windows, o intrerupere de linie, cunoscuta i sub numele de linie noua, este o combinaie de doua caractere: un retur de caret (CR) urmat de un salt de linie (LF). In fiierele text Unix, o intrerupere de linie este un singur caracter: saltul de linie (LF). In fiierele text Mac, inainte de Mac OS X, o intrerupere de linie era un singur caracter retur de caret (CR). In prezent, Mac OS folosete intreruperi de linie in stil Unix (LF). Pe langa intreruperile de linie, <> poate converti i codificarea fiierelor. Cateva pagini de cod DOS pot fi convertite in Latin-1 Unix. i fiierele Unicode Windows (UTF-16) pot fi convertite in fiiere Unicode Unix (UTF-8). Fiierele binare sunt omise automat, cu excepia cazului in care conversia este forata. Fiierele care nu sunt obinuite, cum ar fi directoarele i liniile de conectare cu nume (FIFOs), sunt omise automat. Legaturile simbolice i intele lor sunt in mod implicit pastrate neatinse. Legaturile simbolice pot fi inlocuite opional sau rezultatul poate fi scris in inta legaturii simbolice, Scrierea la o inta de legatura simbolica nu este acceptata in Windows. <> a fost modelat dupa <> din SunOS/Solaris. Exista o diferena importanta faa de versiunea originala a SunOS/Solaris. Aceasta versiune efectueaza in mod implicit conversia ,,in acelai loc", in cazul de faa, in acelai fiier (mod-fiier_vechi), in timp ce versiunea originala SunOS/Solaris accepta doar conversia imperecheata (mod-fiier_nou). A se vedea, de asemenea, opiunile "-o" i "-n". O alta diferena este ca versiunea SunOS/Solaris utilizeaza implicit conversia in modul iso, in timp ce aceasta versiune utilizeaza implicit conversia in modul ascii. OPIUNI -- Trateaza toate opiunile urmatoare ca nume de fiiere. Utilizai aceasta opiune daca dorii sa convertii fiiere ale caror nume incep cu o liniua. De exemplu, pentru a converti un fiier numit ,,-foo", putei folosi aceasta comanda: dos2unix -- -foo Sau in modul-fiier_nou: dos2unix -n -- -foo ieire.txt --allow-chown Permite schimbarea proprietarului fiierului in modul-fiier_vechi. Cand este utilizata aceasta opiune, conversia nu va fi intrerupta atunci cand utilizatorul i/sau grupul proprietar al fiierului original nu poate fi pastrat in modul-fiier_vechi. Conversia va continua i fiierul convertit va primi acelai nou proprietar ca i cum ar fi fost convertit in modul-fiier_nou. A se vedea, de asemenea, opiunile "-o" i "-n". Aceasta opiune este disponibila numai daca <> are suport pentru pastrarea utilizatorului i grupului proprietar al fiierelor. -ascii Modul de conversie implicit (intre setul de caractere DOS i ISO-8859-1). Consultai, de asemenea, seciunea MODURI DE CONVERSIE. -iso Conversie intre setul de caractere DOS i ISO-8859-1. Consultai, de asemenea, seciunea MODURI DE CONVERSIE. -1252 Utilizeaza pagina de cod Windows 1252 (Europa de vest). -437 Utilizeaza pagina de cod DOS 437 (SUA). Aceasta este pagina de cod implicita utilizata pentru conversia ISO. -850 Utilizeaza pagina de cod DOS 850 (Europa de vest). -860 Utilizeaza pagina de cod DOS 860 (Portugalia). -863 Utilizeaza pagina de cod DOS 863 (Franceza Canadiana). -865 Utilizeaza pagina de cod DOS 865 (Scandinavia). -7 Convertete caractere de 8 bii in spaiu de 7 bii. -b, --keep-bom Pastreaza marcajul de ordine a octeilor (BOM). Cand fiierul de intrare are un marcaj de ordine a octeilor, scrie marcajul de ordine a octeilor in fiierul de ieire. Acesta este comportamentul implicit la conversia de intreruperi de linie DOS. A se vedea, de asemenea, opiunea "-r". -c, --convmode MOD_CONVERSIE Stabilete modul de conversie. Unde MOD_CONVERSIE este unul dintre: ascii, 7bit, iso, mac ,,ascii" fiind valoarea implicita. -D, --display-enc COFIFICAREA Stabilete codificarea textului afiat. Unde CODIFICAREA este una dintre: ansi, unicode, unicodebom, utf8, utf8bom; ,,ascii" fiind valoarea implicita. Aceasta opiune este disponibila numai in <> pentru Windows cu suport pentru numele fiierelor in Unicode. Aceasta opiune nu are efect asupra numelor de fiiere citite i scrise, ci doar asupra modului in care acestea sunt afiate. Exista mai multe metode de afiare a textului intr-o consola Windows bazate pe codificarea textului. Toate acestea au propriile lor avantaje i dezavantaje. ansi Metoda implicita a <> este utilizarea textului codificat ANSI. Avantajul este acela ca este compatibila cu versiunea anterioara. Aceasta opiune funcioneaza cu fonturi bitmap i TrueType. In unele regiuni, poate fi necesar sa schimbai pagina de coduri OEM DOS activa in pagina de coduri ANSI a sistemului Windows folosind comanda "chcp", deoarece <> utilizeaza pagina de coduri a sistemului Windows. Dezavantajul lui ,,ansi" este ca numele fiierelor internaionale cu caractere care nu sunt in interiorul paginii de cod implicite a sistemului, nu sunt afiate corect. Vei vedea in schimb un semn de intrebare sau un simbol greit. Cand nu lucrai cu nume de fiiere straine, aceasta metoda este OK. unicode, unicodebom Avantajul codificarii Unicode (numele Windows pentru UTF-16) este ca textul este de obicei afiat corect. Nu este nevoie sa schimbai pagina de cod activa. Poate fi necesar sa definii fontul consolei la un font TrueType pentru ca toate caracterele internaionale sa fie afiate corect. Cand un caracter nu este inclus in fontul TrueType, de obicei vedei un patrat mic, uneori cu un semn de intrebare in el. Cand utilizai consola ConEmu, tot textul este afiat corect, deoarece ConEmu selecteaza automat un font bun. Dezavantajul unicode (UTF-16) este ca nu este compatibil cu ASCII. Ieirea nu este uor de gestionat atunci cand o redirecionai catre alt program. Cand se folosete metoda "unicodebom", textul Unicode va fi precedat de un BOM (,,Byte Order Mark" = marcaj de ordine a octeilor). Este necesar un marcaj de ordine a octeilor pentru redirecionarea corecta sau canalizarea in PowerShell. utf8, utf8bom Avantajul lui utf8 este faptul ca este compatibil cu ASCII. Trebuie sa definii fontul consolei la un font TrueType. Cu un font TrueType, textul este afiat similar cu codificarea "unicode". Dezavantajul este ca atunci cand utilizai fontul bitmap implicit, toate caracterele non-ASCII sunt afiate greit. Nu numai numele fiierelor Unicode, ci i mesajele traduse devin imposibil de citit. In Windows configurat pentru o regiune din Asia de Est, este posibil sa observai o mulime de palpairi ale consolei cand mesajele sunt afiate. Intr-o consola ConEmu, metoda de codificare utf8 funcioneaza bine. Cand se folosete metoda "utf8bom", textul UTF-8 va fi precedat de un BOM (,,Byte Order Mark" = marcaj de ordine a octeilor). Este necesar un marcaj de ordine a octeilor pentru redirecionarea corecta sau canalizarea in PowerShell. Codificarea implicita poate fi schimbata cu variabila de mediu DOS2UNIX_DISPLAY_ENC definindu-i valoarea: "unicode", "unicodebom", "utf8" sau "utf8bom". -e, --add-eol Adauga o intrerupere de linie la ultima linie, daca nu exista una. Acest lucru funcioneaza pentru fiecare conversie. Un fiier convertit din formatul DOS in formatul Unix poate sa nu aiba o intrerupere de linie pe ultima linie. Exista editoare de text care scriu fiiere de text fara o intrerupere de linie pe ultima linie. Unele programe Unix au probleme in procesarea acestor fiiere, deoarece standardul POSIX definete ca fiecare linie dintr-un fiier text trebuie sa se incheie cu un caracter de sfarit de linie noua. De exemplu, concatenarea fiierelor poate sa nu dea rezultatul ateptat. -f, --force Foreaza conversia fiierelor binare. -gb, --gb18030 In Windows, fiierele UTF-16 sunt convertite implicit in UTF-8, indiferent de configurarea locala. Utilizai aceasta opiune pentru a converti fiierele UTF-16 in GB18030. Aceasta opiune este disponibila numai in Windows. A se vedea, de asemenea, seciunea GB18030. -h, --help Afieaza mesajul de ajutor i iese. -i[FLAGS], --info[=FLAGS] FILE ... Afieaza informaii despre fiier. Nu se face nicio conversie. Sunt afiate urmatoarele informaii, in aceasta ordine: numarul de intreruperi de linie DOS, numarul de intreruperi de linie Unix, numarul de intreruperi de linie Mac, marcajul de ordine a octeilor, text sau binar, numele fiierului. Exemplu de ieire: 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 Reinei ca, uneori, un fiier binar poate fi confundat cu un fiier text. A se vedea, de asemenea, opiunea "-s". Daca, in plus, se utilizeaza opiunea "-e" sau "--add-eol", se imprima, de asemenea, tipul intreruperii de linie de pe ultima linie sau "noeol", daca nu exista. Exemplu de ieire: 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 Opional, pot fi adaugate fanioane suplimentare pentru a modifica rezultatul. Se pot adauga unul sau mai multe fanioane. 0 Afieaza liniile de informaii ale fiierului urmate de un caracter null in loc de un caracter de linie noua. Acest lucru permite interpretarea corecta a numelor de fiiere cu spaii sau ghilimele atunci cand este utilizat fanionul ,,c". Utilizai acest fanion in combinaie cu opiunea xargs(1) "-0" sau "--null". d Afieaza numarul de intreruperi de linie al formatului DOS. u Afieaza numarul de intreruperi de linie al formatului Unix. m Afieaza numarul de intreruperi de linie al formatului Mac. b Afieaza marcajul de ordine a octeilor. t Indica daca fiierul este text sau binar. e Imprima tipul intreruperii de linie de pe ultima linie sau "noeol" daca nu exista. c Afieaza numai fiierele care vor fi convertite. Cu fanionul "c", <> va afia numai fiierele care conin intreruperi de linie DOS, <> va afia numai numele de fiiere care au intreruperi de linie Unix. Daca, in plus, se utilizeaza opiunea "-e" sau "--add-eol", vor fi afiate i fiierele carora le lipsete o intrerupere de linie pe ultima linie. h Afieaza titlul. p Afieaza (doar) numele fiierelor, fara ruta catre ele. Exemple: Afieaza informaii pentru toate fiierele *.txt: dos2unix -i *.txt Afieaza doar numarul de intreruperi de linie DOS i de intreruperi de linie Unix: dos2unix -idu *.txt Afieaza doar marcajul de ordine a octeilor: dos2unix --info=b *.txt Listeaza fiierele care au intreruperi de linie DOS: dos2unix -ic *.txt Listeaza fiierele care au intreruperi de linie Unix: unix2dos -ic *.txt Listeaza fiierele care au intreruperi de linie DOS sau care nu au intreruperi de linie pe ultima linie: dos2unix -e -ic *.txt Convertete numai fiierele care au intreruperi de linie DOS i lasa celelalte fiiere neatinse: dos2unix -ic0 *.txt | xargs -0 dos2unix Gasete fiiere text care au intreruperi de linie DOS: find -name '*.txt' -print0 | xargs -0 dos2unix -ic -k, --keepdate Pastreaza marcajul de data al fiierului de ieire la fel ca al fiierului de intrare. -L, --license Afieaza licena programului. -l, --newline Adauga o linie noua suplimentara. dos2unix: Numai intreruperile de linie DOS sunt modificate in doua intreruperi de linie Unix. In modul Mac, numai intreruperile de linie Mac sunt modificate in doua intreruperi de linie Unix. unix2dos: Numai intreruperile de linie Unix sunt modificate in doua intreruperi de linie DOS. In modul Mac, intreruperile de linie Unix sunt modificate in doua intreruperi de linie Mac. -m, --add-bom Scrie un marcaj de ordine a octeilor (BOM) in fiierul de ieire. In mod implicit, este scris un marcaj de ordine a octeilor UTF-8. Cand fiierul de intrare este UTF-16 i este utilizata opiunea "-u", va fi scris un marcaj de ordine a octeilor UTF-16. Nu utilizai niciodata aceasta opiune cand codificarea de ieire este alta decat UTF-8, UTF-16 sau GB18030. Vedei, de asemenea, seciunea UNICODE. -n, --newfile FIIER_INTRARE FIIER_IEIRE ... Modul de fiier nou. Convertii fiierul FIIER_INTRARE i scriei rezultatul in fiierul FIIER_IEIRE. Numele fiierelor trebuie sa fie date in perechi, iar numele cu metacaractere ar trebui sa nu fi folosite sau v-ai puteai pierde fiierele. Persoana care incepe conversia in modul-fiier_nou (pereche) va fi proprietarul fiierului convertit. Permisiunile de citire/scriere ale noului fiier vor fi permisiunile fiierului original minus umask(1) al persoanei care executa conversia. --no-allow-chown Nu permite schimbarea proprietarului fiierului in modul-fiier_vechi (implicit). Anuleaza conversia atunci cand utilizatorul i/sau grupul proprietar al fiierului original nu poate fi pastrat in modul-fiier_vechi. A se vedea, de asemenea, opiunile "-o" i "-n". Aceasta opiune este disponibila doar daca <> are suport pentru pastrarea dreptului de proprietate asupra fiierelor de catre utilizator i grup. --no-add-eol Nu adauga o intrerupere de linie la ultima linie, daca nu exista una. -O, --to-stdout Scrie la ieirea standard, ca un filtru Unix. Folosii opiunea "-o" pentru a reveni la modul-fiier_vechi (in acelai loc / in acelai fiier). In combinaie cu opiunea "-e", fiierele pot fi concatenate in mod corespunzator. Nu se fuzioneaza ultima i prima linie i nici marcajele de ordine a octeilor (BOM) Unicode in mijlocul fiierului concatenat. Exemplu: dos2unix -e -O fiier1.txt fiier2.txt > fiier_ieire.txt -o, --oldfile FIIER ... Modul fiier vechi. Convertete fiierul FIIER i suprascrie rezultatul in el. Programul ruleaza implicit in acest mod. Pot fi folosite nume cu metacaractere. In modul-fiier_vechi (in acelai loc / in acelai fiier), fiierul convertit primete acelai proprietar, grup i permisiuni de citire/scriere ca fiierul original. De asemenea, atunci cand fiierul este convertit de un alt utilizator care are permisiuni de scriere in fiier (de exemplu, utilizatorul root). Conversia va fi anulata atunci cand nu este posibil sa se pastreze valorile originale. Schimbarea proprietarului ar putea insemna ca proprietarul iniial nu mai poate citi fiierul. Schimbarea grupului ar putea reprezenta un risc de securitate, fiierul ar putea fi facut vizibil pentru persoanele carora nu este destinat. Pastrarea permisiunilor de proprietar, de grup i de citire/scriere este acceptata numai in Unix. Pentru a verifica daca <> are suport pentru pastrarea proprietaii utilizatorului i grupului de fiiere, tastai "dos2unix -V". Conversia se face intotdeauna printr-un fiier temporar. Cand apare o eroare la jumatatea conversiei, fiierul temporar este ters i fiierul original ramane intact. Cand conversia are succes, fiierul original este inlocuit cu fiierul temporar. Este posibil sa avei permisiunea de scriere in fiierul original, dar nu avei permisiunea de a pune aceleai proprietai de proprietate ale utilizatorului i/sau grupului asupra fiierului temporar ca cele pe care le are fiierul original. Aceasta inseamna ca nu putei pastra utilizatorul i/sau grupul proprietar al fiierului original. In acest caz, putei utiliza opiunea "--allow-chown" pentru a continua conversia: dos2unix --allow-chown foo.txt O alta opiune este sa utilizai modul-fiier_nou: dos2unix -n foo.txt foo.txt Avantajul opiunii "--allow-chown" este ca putei folosi metacaractere, iar proprietaile de proprietate vor fi pastrate atunci cand este posibil. -q, --quiet Modul silenios. Suprima toate avertismentele i mesajele. Valoarea returnata este zero. Cu excepia cazului in care sunt utilizate opiuni greite in linia de comanda. -r, --remove-bom Elimina marcajul de ordine a octeilor (BOM). Nu scrie un marcaj de ordine a octeilor in fiierul de ieire. Acesta este comportamentul implicit la conversia intreruperilor de linie Unix. A se vedea, de asemenea, opiunea "-b". -s, --safe Omite fiierele binare (implicit). Omiterea fiierelor binare se face pentru a evita greelile accidentale. Reinei ca detectarea fiierelor binare nu este 100% sigura. Fiierele de intrare sunt scanate pentru simboluri binare care de obicei nu se gasesc in fiierele text. Este posibil ca un fiier binar sa conina doar caractere de text normale. Un astfel de fiier binar va fi vazut din greeala ca un fiier text. -u, --keep-utf16 Pastreaza codificarea UTF-16 originala a fiierului de intrare. Fiierul de ieire va fi scris in aceeai codare UTF-16, little sau big endian, ca i fiierul de intrare. Acest lucru previne transformarea in UTF-8. Un marcaj de ordine a octeilor UTF-16 va fi scris in consecina. Aceasta opiune poate fi dezactivata cu opiunea "-ascii". -ul, --assume-utf16le Presupune ca formatul fiierului de intrare este UTF-16LE. Cand exista un marcaj de ordine a octeilor in fiierul de intrare, marcajul de ordine a octeilor are prioritate faa de aceasta opiune. Cand ai facut o presupunere greita (fiierul de intrare nu era in format UTF-16LE) i conversia a reuit, vei obine un fiier de ieire UTF-8 cu text greit. Putei anula conversia greita cu iconv(1) prin conversia fiierului de ieire UTF-8 inapoi in UTF-16LE. Acest lucru va reface fiierul original. Presupunerea UTF-16LE funcioneaza ca un mod de conversie. Prin trecerea la modul ascii implicit, presupunerea UTF-16LE este dezactivata. -ub, --assume-utf16be Presupune ca formatul fiierului de intrare este UTF-16BE. Aceasta opiune funcioneaza la fel ca i opiunea "-ul". -v, --verbose Afieaza mesaje detaliate. Sunt afiate informaii suplimentare despre marcile de ordine ale octeilor i cantitatea de intreruperi de linie convertite. -F, --follow-symlink Urmeaza legaturile simbolice i convertete intele. -R, --replace-symlink Inlocuiete legaturile simbolice cu fiierele convertite (fiierele inta originale raman neschimbate). -S, --skip-symlink Pastreaza legaturile simbolice i intele neschimbate (implicit). -V, --version Afieaza informaiile despre versiune i iese. MODUL MAC In mod implicit, salturile (intreruperile) de linie sunt convertite din DOS in Unix i invers. Intreruperile de linie Mac nu sunt convertite. In modul Mac, intreruperile de linie sunt convertite din Mac in Unix i invers. Intreruperile de linie DOS nu sunt modificate. Pentru a rula in modul Mac, utilizai opiunea din linie de comanda "-c mac" sau utilizai comenzile "mac2unix" sau "unix2mac". MODURI DE CONVERSIE ascii Acesta este modul de conversie implicit. Acest mod este destinat conversiei fiierelor codificate ASCII i compatibile cu ASCII, cum ar fi UTF-8. Activarea modului ascii dezactiveaza modurile 7bit i iso. Daca <> are suport UTF-16, fiierele codificate UTF-16 sunt convertite la codificarea caracterelor locale curente pe sistemele POSIX i la UTF-8 pe Windows. Activarea modului ascii dezactiveaza opiunea de pastrare a codificarii UTF-16 ("-u") i opiunile de asumare a intrarii UTF-16 ("-ul" i "-ub"). Pentru a vedea daca <> are suport UTF-16, tastai "dos2unix -V". A se vedea i seciunea UNICODE. 7bit In acest mod, toate caracterele de 8 bii non-ASCII (cu valori de la 128 la 255) sunt convertite intr-un spaiu de 7 bii. iso Caracterele sunt convertite intre un set de caractere DOS (pagina de cod) i un set de caractere ISO ISO-8859-1 (Latin-1) in Unix. Caracterele DOS fara echivalent ISO-8859-1, pentru care conversia nu este posibila, sunt convertite intr-un punct. Acelai lucru este valabil i pentru caracterele ISO-8859-1 fara omolog in DOS. Cand este folosita numai opiunea "-iso", <> va incerca sa determine pagina de cod activa. Cand acest lucru nu este posibil, <> va folosi pagina de cod implicita CP437, care este folosita in principal in SUA. Pentru a fora o anumita pagina de coduri, utilizai opiunile "-437" (SUA), "-850" (Europa de Vest), "-860" (Portugheza), "-863" (Franceza Canadiana) sau "- 865" (Scandinava). Pagina de coduri CP1252 (Europa de Vest) Windows este, de asemenea, acceptata cu opiunea "-1252". Pentru alte pagini de cod, utilizai <> in combinaie cu iconv(1). <> poate converti o lista lunga de codificari de caractere. Putei vizualiza aceasta lista ruland comanda: <>. Nu utilizai niciodata conversia ISO pe fiiere text Unicode. Acesta va deteriora fiierele codificate UTF-8. Cateva exemple: Convertete din pagina de cod implicita DOS in Latin-1 Unix: dos2unix -iso -n fiier_intrare.txt fiier_ieire.txt Convertete din CP850 DOS in Latin-1 Unix: dos2unix -850 -n fiier_intrare.txt fiier_ieire.txt Convertete din CP1252 Windows in Latin-1 Unix: dos2unix -1252 -n fiier_intrare.txt fiier_ieire.txt Convertete din CP1252 Windows in UTF-8 (Unicode) Unix: iconv -f CP1252 -t UTF-8 fiier_intrare.txt | dos2unix > fiier_ieire.txt Convertete din Latin-1 Unix la pagina de cod implicita DOS: unix2dos -iso -n fiier_intrare.txt fiier_ieire.txt Convertete din Latin-1 Unix in CP850 DOS: unix2dos -850 -n fiier_intrare.txt fiier_ieire.txt Convertete din Latin-1 Unix in CP1252 Windows: unix2dos -1252 -n fiier_intrare.txt fiier_ieire.txt Convertete din UTF-8 (Unicode) Unix in CP1252 Windows: unix2dos < fiier_intrare.txt | iconv -f UTF-8 -t CP1252 > fiier_ieire.txt Consultai de asemenea i . UNICODE Codificari Exista diferite codificari Unicode. In Unix i Linux fiierele Unicode sunt de obicei codificate in codificarea UTF-8. In Windows, fiierele text Unicode pot fi codificate in UTF-8, UTF-16 sau UTF-16 big-endian, dar sunt in mare parte codificate in formatul UTF-16. Conversie Fiierele text Unicode pot avea intreruperi de linie DOS, Unix sau Mac, ca i fiierele text ASCII. Toate versiunile de <> i <> pot converti fiiere codificate in formatul UTF-8, deoarece UTF-8 a fost conceput pentru compatibilitate cu ASCII. <> i <> cu suport Unicode UTF-16, pot citi fiiere text codificate UTF-16 little i big endian. Pentru a vedea daca <> a fost construit cu suport UTF-16, tastai: "dos2unix -V". In Unix/Linux, fiierele codificate UTF-16 sunt convertite in codificarea caracterelor locale. Utilizai comanda locale(1) pentru a afla care este codificarea caracterelor stabilita de localizare. Atunci cand conversia nu este posibila, va aparea o eroare de conversie i fiierul va fi omis. In Windows, fiierele UTF-16 sunt convertite in mod implicit in UTF-8. Fiierele text formatate UTF-8 sunt bine acceptate atat in Windows, cat i in Unix/Linux. Codificarile UTF-16 i UTF-8 sunt pe deplin compatibile, nu se va pierde text in conversie. Cand apare o eroare de conversie din UTF-16 in UTF-8, de exemplu cand fiierul de intrare UTF-16 conine o eroare, fiierul va fi omis. Cand se utilizeaza opiunea "-u", fiierul de ieire va fi scris in aceeai codificare UTF-16 ca i fiierul de intrare. Opiunea "-u" impiedica conversia in UTF-8. <> i <> nu au nicio opiune de a converti fiierele UTF-8 in UTF-16. Modurile de conversie ISO i 7 bii nu funcioneaza pe fiierele UTF-16. Marcajul de ordine a octeilor In Windows, fiierele text Unicode au de obicei un marcaj de ordine a octeilor (BOM), deoarece multe programe Windows (inclusiv Notepad) adauga marcajul de ordine a octeilor in mod implicit. A se vedea, de asemenea, . In Unix, fiierele Unicode nu au de obicei un marcaj de ordine a octeilor (BOM). Se presupune ca fiierele text sunt codificate in codificarea caracterelor stabilita de localizare. <> poate detecta daca un fiier este in formatul UTF-16 numai daca fiierul are un marcaj de ordine a octeilor (BOM). Cand un fiier UTF-16 nu are un marcaj de ordine a octeilor, <> va vedea fiierul ca un fiier binar. Utilizai opiunea "-ul" sau "-ub" pentru a converti un fiier UTF-16 fara un marcaj de ordine a octeilor (BOM). <> nu scrie in mod implicit niciun marcaj de ordine a octeilor (BOM) in fiierul de ieire. Cu opiunea "-b" <> scrie un marcaj de ordine a octeilor atunci cand fiierul de intrare are un marcaj de ordine a octeilor. <> scrie implicit un marcaj de ordine a octeilor in fiierul de ieire cand fiierul de intrare are un marcaj de ordine a octeilor. Utilizai opiunea "-r" pentru a elimina un marcaj de ordine a octeilor. <> i <> scriu intotdeauna un marcaj de ordine a octeilor atunci cand se utilizeaza opiunea "-m". Nume de fiiere Unicode in Windows <> are suport opional pentru citirea i scrierea numelor de fiiere Unicode in linia de comanda Windows. Asta inseamna ca <> poate deschide fiiere care au caractere in nume care nu fac parte din pagina de cod ANSI implicita a sistemului. Pentru a vedea daca <> pentru Windows a fost construit cu suport pentru nume de fiier Unicode, tastai: "dos2unix -V". Exista unele probleme cu afiarea numelor de fiiere Unicode intr-o consola Windows. Vedei opiunea "-D", "--display-enc". Numele fiierelor pot fi afiate greit in consola, dar fiierele vor fi scrise cu numele corect. Exemple Unicode Convertete din UTF-16 Windows (fara BOM) in UTF-8 Unix: dos2unix -n fiier_intrare.txt fiier_ieire.txt Convertete din UTF-16LE Windows (fara BOM) in UTF-8 Unix: dos2unix -ul -n fiier_intrare.txt fiier_ieire.txt Convertete din UTF-8 Unix in Windows UTF-8 Windows cu BOM: unix2dos -m -n fiier_intrare.txt fiier_ieire.txt Convertete din UTF-8 Unix in UTF-16 Windows: unix2dos < fiier_intrare.txt | iconv -f UTF-8 -t UTF-16 > fiier_ieire.txt GB18030 GB18030 este un standard guvernamental chinez. Un subset obligatoriu al standardului GB18030 este obligatoriu oficial pentru toate produsele software vandute in China. A se vedea, de asemenea, . 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, cunoscuta i sub numele de GBK. In Unix/Linux, fiierele UTF-16 sunt convertite in GB18030 atunci cand codificarea locala este setata la GB18030. Reinei ca acest lucru va funciona numai daca localizarea este acceptata de sistem. Utilizai comanda "locale -a" pentru a obine lista localizarilor acceptate. In Windows, trebuie sa utilizai opiunea "-gb" pentru a converti fiierele UTF-16 in GB18030. Fiierele codificate GB18030 pot avea un marcaj de ordine a octeilor, precum fiierele Unicode. EXEMPLE Citete intrarea din ,,stdin" (intrarea standard) i scrie ieirea la ,,stdout" (ieirea standard): dos2unix < a.txt cat a.txt | dos2unix Convertete i inlocuiete a.txt. Convertete i inlocuiete b.txt: dos2unix a.txt b.txt dos2unix -o a.txt b.txt Convertete i inlocuiete a.txt in modul de conversie ascii: dos2unix a.txt Convertete i inlocuiete a.txt in modul de conversie ascii, convertete i inlocuiete b.txt in modul de conversie pe 7 bii: dos2unix a.txt -c 7bit b.txt dos2unix -c ascii a.txt -c 7bit b.txt dos2unix -ascii a.txt -7 b.txt Convertete a.txt din formatul Mac in formatul Unix: dos2unix -c mac a.txt mac2unix a.txt Convertete a.txt din formatul Unix in formatul Mac: unix2dos -c mac a.txt unix2mac a.txt Convertete i inlocuiete a.txt, pastrand marcajul original al datei: dos2unix -k a.txt dos2unix -k -o a.txt Convertete a.txt i scrie in e.txt: dos2unix -n a.txt e.txt Convertete a.txt i scrie in e.txt, i face ca marcajul de data al lui e.txt sa fie la fel cu cel al lui a.txt: dos2unix -k -n a.txt e.txt Convertete i inlocuiete a.txt, convertetei b.txt i scrie in e.txt: dos2unix a.txt -n b.txt e.txt dos2unix -o a.txt -n b.txt e.txt Convertete c.txt i scrie in e.txt, convertete i inlocuiete a.txt, convertete i inlocuiete b.txt, convertete d.txt i scrie in f.txt: dos2unix -n c.txt e.txt -o a.txt b.txt -n d.txt f.txt CONVERSIE RECURSIVA Intr-un shell Unix, comenzile find(1) i xargs(1) pot sa fie folosite pentru a rula <> in mod recursiv asupra tuturor fiierele text dintr-un arbore de directoare. De exemplu, pentru a converti toate fiierele .txt din arborele de directoare sub directorul curent, tastai: find . -name '*.txt' -print0 |xargs -0 dos2unix Opiunea find(1) "-print0" i opiunea corespunzatoare xargs(1) "-0" sunt necesare atunci cand exista fiiere cu spaii sau ghilimele in nume. In caz contrar, aceste opiuni pot fi omise. O alta opiune este sa utilizai find(1) cu opiunea "-exec": find . -name '*.txt' -exec dos2unix {} \; Intr-un prompt de comanda Windows se poate folosi urmatoarea comanda: for /R %G in (*.txt) do dos2unix "%G" Utilizatorii de PowerShell pot folosi urmatoarea comanda a PowerShell de Windows: get-childitem -path . -filter '*.txt' -recurse | foreach-object {dos2unix $_.Fullname} LOCALIZAREA LANG Limba principala este selectata cu variabila de mediu LANG. Variabila LANG consta din mai multe pari. Prima parte este codul limbii cu litere mici. Al doilea este opional i este codul arii cu majuscule, precedat de un caracter de subliniere. Exista, de asemenea, o a treia parte opionala: codificarea caracterelor, precedata de un punct. Cateva exemple pentru shell- uri de tip standard POSIX: export LANG=nl Olandeza export LANG=nl_NL Olandeza, Olanda export LANG=nl_BE Olandeza, Belgia export LANG=es_ES Spaniola, Spania export LANG=es_MX Spaniola, Mexic export LANG=en_US.iso88591 Engleza, SUA, codificarea Latin-1 export LANG=en_GB.UTF-8 Engleza, UK, codificarea UTF-8 Pentru o lista completa a codurilor de limba i de ara, consultai manualul <>: In sistemele Unix, putei utiliza comanda locale(1) pentru a obine informaii specifice despre localizare. LANGUAGE Cu variabila de mediu LANGUAGE putei specifica o lista cu prioritate de limbi, separate prin doua puncte. <> da preferina variabilei LANGUAGE in detrimentul variabilei LANG. De exemplu, mai intai olandeza i apoi germana: "LANGUAGE=nl:de". Mai intai trebuie sa activai localizarea, definind LANG (sau LC_ALL) la o alta valoare decat ,,C", inainte de a putea utiliza o lista cu prioritate de limba prin variabila LANGUAGE. Consultai i manualul <>: Daca selectai o limba care nu este disponibila, vei primi mesajele standard in limba engleza. DOS2UNIX_LOCALEDIR Cu variabila de mediu DOS2UNIX_LOCALEDIR, variabila LOCALEDIR definita in timpul compilarii poate fi inlocuita. LOCALEDIR este folosita pentru a gasi fiierele de limba. Valoarea implicita GNU este "/usr/local/share/locale". Opiunea --version va afia valoarea pe care LOCALEDIR o utilizeaza. Exemplu (shell POSIX): export DOS2UNIX_LOCALEDIR=$HOME/share/locale VALOAREA RETURNATA La succes, se returneaza zero. Cand apare o eroare de sistem, va fi returnata ultima eroare de sistem. Pentru alte erori se returneaza 1. Valoarea returnata este intotdeauna zero in modul silenios, cu excepia cazului in care sunt utilizate opiuni greite ale liniei de comanda. STANDARDE AUTORI Benjamin Lin - , Bernd Johannes Wuebben (modul mac2unix) - , Christian Wurll (adaugarea unei linii noi suplimentare) - , Erwin Waterlander - (meninator) Pagina principala a proiectului: Pagina din SourceForge a proiectului: CONSULTAI I file(1) find(1) iconv(1) locale(1) xargs(1) dos2unix 2024-01-22 dos2unix(1)