Man page - dos2unix(1)

Packages contains this manual

Available languages:

en fr pt_BR es pl ko nl sv uk ro sr zh_CN de

Manual

dos2unix

NAMN
SYNOPSIS
BESKRIVNING
FLAGGOR
MAC-LÄGE
KONVERTERINGSLÄGEN
UNICODE
Kodningar
Konvertering
Byteordningsmarkering (Byte Order Mark)
Unicode-filnamn under Windows
Unicode-exempel
GB18030
EXEMPEL
REKURSIV KONVERTERING
LOKALISERING
RETURVÄRDE
STANDARDER
FÖRFATTARE
SE ÄVEN

NAMN

dos2unix - konverterare för textfilsformat frÄn DOS/Mac till Unix och vice versa

SYNOPSIS

dos2unix [flaggor] [FIL 
] [-n INFIL UTFIL 
]
unix2dos [flaggor] [FIL 
] [-n INFIL UTFIL 
]

BESKRIVNING

Paketet Dos2unix inkluderar verktygen "dos2unix" och "unix2dos" som konverterar oformaterade textfiler i DOS- eller Mac-format till Unix-format och vice versa.

Textfiler i DOS/Windows har en radbrytning, ocksÄ kÀnd som nyrad, som Àr en kombination av tvÄ tecken: vagnretur (Carriage Return, CR ) Ätföljt av radmatning (Line Feed, LF ). Textfiler i Unix har en radbrytning som Àr ett enda tecken: radmatning (Line Feed, LF ). Textfiler för Mac, innan Mac OS X, hade en radbrytning som var en enda vagnretur (Carriage Return, CR ). Numera anvÀnder Mac OS radbrytning i Unix-stil ( LF ).

Förutom radbrytningar sÄ kan Dos2unix ocksÄ konvertera filers kodning. NÄgra DOS-teckentabeller kan konverteras till Unix Latin-1. Och filer som anvÀnder Windows Unicode ( UTF-16 ) kan konverteras till Unix Unicode ( UTF-8 ).

BinÀra filer hoppas över automatiskt, om inte konvertering tvingas.

Kataloger och FIFOs och andra filer som inte Àr vanliga filer hoppas över automatiskt.

Symboliska lÀnkar och deras mÄl förblir oförÀndrade som standard. Symboliska lÀnkar kan valfritt bli ersatta eller sÄ kan utmatningen skrivas till mÄlet för den symboliska lÀnken. PÄ Windows saknas stöd för att skriva till mÄlet för en symbolisk lÀnk.

Dos2unix modellerades efter dos2unix frÄn SunOS/Solaris. Det finns en viktig skillnad gentemot originalversionen för SunOS/Solaris. Denna versionen gör som standard konverteringen pÄ plats (gammalfilslÀge), medan originalversionen frÄn SunOS/Solaris bara hade stöd för parad konvertering (nyfilslÀge). Se vidare flaggorna "-o" och "-n". En annan skillnad Àr att SunOS/Solaris-versionen som standard anvÀnder iso -lÀgeskonvertering medan denna version som standard anvÀnder ascii -lÀgeskonvertering.

FLAGGOR

--

Behandla alla efterföljande flaggor som filnamn. AnvĂ€nd denna flagga om du vill konvertera filer vars namn börjar med bindestreck. För att till exempel konvertera en fil med namnet “-foo“ kan du anvĂ€nda detta kommando:

dos2unix -- -foo

Eller i nyfilslÀge:

dos2unix -n -- -foo out.txt

--allow-chown

TillÄt Àndring av Àgarskap för fil i gammalt fillÀge.

NÀr denna flagga anvÀnds, kommer konverteringen inte att avbrytas nÀr anvÀndar- och/eller gruppÀgarskap för originalfilen inte kan bevaras i gammalt fillÀget. Konverteringen kommer att fortsÀtta och den konverterade filen kommer att fÄ samma nya Àgarskap som om den konverterades i nyfilslÀge. Se ocksÄ flaggorna "-o" och "-n". Denna flagga Àr endast tillgÀnglig om dos2unix har stöd för att bevara anvÀndar- och gruppÀgarskap för filer.

-ascii

StandardkonverteringslĂ€ge. Se vidare stycket KONVERTERINGSLÄGEN.

-iso

Konvertering mellan DOS- och ISO-8859-1-teckentabeller. Se vidare stycket KONVERTERINGSLÄGEN.

-1252

AnvÀnd Windows-teckentabell 1252 (VÀsteuropeisk).

-437

AnvÀnd DOS-teckentabell 437 ( USA ). Detta Àr standardteckentabellen som anvÀnds för ISO-konvertering.

-850

AnvÀnd DOS-teckentabell 850 (VÀsteuropeisk).

-860

AnvÀnd DOS-teckentabell 860 (Portugisisk).

-863

AnvÀnd DOS-teckentabell 863 (Fransk-kanadensisk).

-865

AnvÀnd DOS-teckentabell 865 (Nordisk).

-7

Konvertera 8-bitars tecken till 7-bitars blanksteg.

-b, --keep-bom

BehÄll byteordningsmarkering (Byte Order Mark, BOM ). Om infilen har en BOM, skriv en BOM i utfilen. Detta Àr standardbeteendet vid konvertering av DOS-radbrytningar. Se vidare flaggan "-r".

-c, --convmode KONVERTERINGSLÄGE

StĂ€ller in konverteringslĂ€ge. DĂ€r KONVERTERINGSLÄGE Ă€r en av: ascii , 7bit , iso , mac dĂ€r ascii Ă€r standard.

-D, --display-enc KODNING

StÀll in kodning för visad text. DÀr KODNING Àr en av: ansi , unicode , unicodebom , utf8 , utf8bom dÀr ansi Àr standardvalet.

Denna flagga finns bara tillgÀnglig i dos2unix för Windows med stöd för Unicode-filnamn. Denna flagga har ingen effekt pÄ sjÀlva filnamnen som lÀses och skrivs, bara pÄ hur de visas.

Det finns flera metoder för att visa text i en Windows-konsol baserad pÄ vilken kodning texten har. De har alla för- och nackdelar.
ansi

Dos2unix standardmetod Àr att anvÀnda ANSI-kodad text. Fördelen Àr att den Àr bakÄtkompatibel. Det fungerar med raster- och TrueType-teckensnitt. I vissa regioner kan du behöva Àndra den aktiva DOS OEM-teckentabellen till Windows-systemets ANSI-teckentabell genom att anvÀnda kommandot "chcp", eftersom dos2unix anvÀnder Windows-systemets teckentabell.

Nackdelen med ansi Àr att internationella filnamn med tecken som inte finns i systemets standardteckentabell inte visas korrekt. Du kommer att se frÄgetecken, eller en felaktig symbol istÀllet. NÀr du inte arbetar med utlÀndska filnamn Àr denna metoden OK.

unicode, unicodebom

Fördelen med unicode-kodning (Windows-namnet för UTF-16 ) Àr att text vanligtvis visas korrekt. Det finns inget behov av att Àndra den aktiva teckentabellen. Du kan behöva stÀlla in konsolens teckensnitt till ett TrueType-teckensnitt för att fÄ internationella tecken att visas korrekt. NÀr ett tecken inte finns inkluderat i TrueType-teckensnittet kommer du vanligtvis att se en liten ruta, ibland med ett frÄgetecken inuti.

NÀr du anvÀnder ConEmu-konsolen kommer all text att visas korrekt eftersom ConEmu automatiskt vÀljer ett bra teckensnitt.

Nackdelen med unicode Àr att den inte Àr kompatibel med ASCII. Utmatningen Àr inte lÀtt att hantera nÀr du omdirigerar den till ett annat program eller en fil.

NÀr metod "unicodebom" anvÀnds kommer Unicode-texten att föregÄs av en BOM (byteordningsmarkering, Byte Order Mark). En BOM krÀvs för korrekt omdirigering eller rörledning i PowerShell.

utf8, utf8bom

Fördelen med utf8 Àr att den Àr kompatibel med ASCII. Du mÄste stÀlla in konsolens teckensnitt till ett TrueType-teckensnitt. Med ett TrueType-teckensnitt kommer text att visas pÄ liknande sÀtt som med "unicode"-kodningen.

Nackdelen Ă€r att nĂ€r du anvĂ€nder standardrasterteckensnittet kommer alla icke-ASCII tecken att visas fel. Inte enbart unicode-filnamn, utan ocksĂ„ översatta meddelanden kommer att bli olĂ€sbara. Under Windows som konfigurerats för Östasien kan man komma att se mĂ„nga blinkningar i konsolen nĂ€r meddelanden visas.

I ConEmu-konsolen fungerar utf8-kodningsmetoden vÀl.

NÀr metod "utf8bom" anvÀnds kommer UTF-8-texten att föregÄs av en BOM (byteordningsmarkering, Byte Order Mark). En BOM krÀvs för korrekt omdirigering eller rörledning i PowerShell.

Standardkodningen kan Àndras via miljövariabeln DOS2UNIX_DISPLAY_ENC genom att sÀtta den till "unicode", "unicodebom", "utf8" or "utf8bom".

-e, --add-eol

LÀgg till en radbrytning pÄ sista raden om det inte finns nÄgon. Detta fungerar för alla konverteringar.

En fil konverterad frÄn DOS- till Unix-format kan sakna en radbrytning pÄ sista raden. Det finns textredigerare som skriver textfiler utan en radbrytning pÄ den sista raden. Vissa Unix-program har problem med att behandla dessa filer, dÄ POSIX-standarden definierar det som att varje rad i en textfil mÄste har ett avslutande nyradstecken. Att konkatenera filer kan till exempel ge ovÀntat resultat.

-f, --force

Tvinga konvertering av binÀra filer.

-gb, --gb18030

Under Windows konverteras UTF-16-filer som standard till UTF-8, oavsett vilken lokalinstÀllning som Àr gjord. AnvÀnd denna flagga för att konvertera UTF-16-filer till GB18030. Denna flagga finns bara tillgÀnglig i Windows. Se vidare i avsnittet GB18030.

-h, --help

Visa hjÀlptext och avsluta.

-i[ FLAGGOR ], --info[=FLAGGOR] FIL ...

Visa filinformation. Ingen konvertering görs.

Följande information skrivs ut, i denna ordningen: antal DOS-radbrytningar, antal Unix-radbrytningar, antal Mac-radbrytningar, byteordningsmarkeringen, text eller binÀr, filnamn.

Exempelutmatning:

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 binÀr dos2unix.exe

Notera att en binÀrfil ibland kan misstas för en textfil. Se vidare flaggan "-s".

Om dessutom flaggan "-e" eller "--add-eol" anvÀnds sÄ kommer Àven den radbrytning som anvÀnds pÄ sista raden att skrivas ut, eller "noeol" om det inte finns nÄgon.

Exempelutmatning:

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

Extra flaggor kan anvÀndas valfritt för att Àndra utmatningen. En eller fler flaggor kan lÀggas till.

0

Skriv ut filinformationsraderna följt av ett null-tecken istÀllet för ett nyradstecken. Detta möjliggör korrekt tolkning av filnamn med blanksteg eller citationstecken nÀr c-flaggan anvÀnds. AnvÀnd denna flagga i kombination med xargs (1):s flagga "-0" eller "--null".

d

Skriv ut antal DOS-radbrytningar.

u

Skriv ut antal Unix-radbrytningar.

m

Skriv ut antal Mac-radbrytningar.

b

Skriv ut byteordningsmarkeringen.

t

Skriv ut om filen Àr text eller binÀr.

e

Skriv ut radbrytningstypen pÄ sista raden, eller "noeol" om det inte finns nÄgon.

c

Skriv bara ut filerna som skulle ha konverterats.

Med "c"-flaggan kommer dos2unix att skriva ut filerna som innehÄller DOS-radbrytningar, unix2dos kommer bara att skriva ut filnamn som har Unix-radbrytningar.

Om dessutom flaggan "-e" eller "--add-eol" anvÀnds sÄ kommer Àven filer som saknar en radbrytning pÄ sista raden att skrivas ut.

h

Skriv ut rubrik.

p

Visa filnamn utan sökvÀg.

Exempel:

Visa information för alla *.txt-filer:

dos2unix -i *.txt

Visa bara antalet DOS-radbrytningar och Unix-radbrytningar:

dos2unix -idu *.txt

Visa bara byteordningsmarkeringen:

dos2unix --info=b *.txt

Lista filerna som har DOS-radbrytningar:

dos2unix -ic *.txt

Lista filerna som har Unix-radbrytningar:

unix2dos -ic *.txt

Lista filerna som har DOS-radbrytningar eller saknar en radbrytning pÄ sista raden:

dos2unix -e -ic *.txt

Konvertera endast filer som har DOS-radbrytningar och lÀmna övriga filer orörda:

dos2unix -ic0 *.txt | xargs -0 dos2unix

Hitta textfiler som har DOS-radbrytningar:

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

-k, --keepdate

BehÄll infilens datumstÀmpel för utfilen.

-L, --license

Visa programmets licens.

-l, --newline

LĂ€gg till ytterligare nyrad.

dos2unix : Endast DOS-radbrytningar Àndras till tvÄ Unix-radbrytningar. I Mac-lÀge Àndras endast Mac-radbrytningar till tvÄ Unix-radbrytningar.

unix2dos : Endast Unix-radbrytningar Àndras till tvÄ DOS-radbrytningar. I Mac-lÀge Àndras Unix-radbrytningar till tvÄ Mac-radbrytningar.

-m, --add-bom

Skriv en byteordningsmarkering (Byte Order Mark, BOM ) i utfilen. Som standard skrivs en UTF-8 BOM.

NÀr infilen Àr UTF-16, och flaggan "-u" anvÀnds, kommer en UTF-16 BOM att skrivas.

AnvÀnd aldrig denna flagga nÀr kodningen för utmatning Àr nÄgot annat Àn UTF-8, UTF-16 eller GB18030. Se vidare i avsnittet UNICODE.

-n, --newfile INFIL UTFIL 


NyfilslÀge. Konvertera filen INFIL och skriv utfilen UTFIL. Filnamnen mÄste ange i par och jokertecken i namnen ska inte anvÀndas annars kommer du att förlora filer.

AnvÀndaren som pÄbörjar konverteringen i nyfilslÀge (parat lÀge) kommer att bli Àgaren till den konverterade filen. LÀs-/skrivbehörigheter för den nya filen kommer att vara samma behörigheter som för originalfilen minus umask (1) för anvÀndaren som kör konverteringen.

--no-allow-chown

TillÄt inte Àndring av Àgarskap i gammalt fillÀge (standard)

Avbryt konvertering nÀr anvÀndar- och/eller gruppÀgarskap för originalfilen inte kan bevaras i gammalt fillÀge. Se ocksÄ flaggorna "-o" och "-n". Denna flagga Àr endast tillgÀnglig om dos2unix har stöd för att bevara anvÀndar- och gruppÀgarskap för filer.

--no-add-eol

LÀgg inte till en radbrytning pÄ den sista raden om det inte finns nÄgon.

-O, --to-stdout

Skriv till standard ut som ett Unix-filter. AnvÀnd flaggan "-o" för att ÄtergÄ till det gamla (pÄ-plats) fillÀget.

Kombinerat med flaggan "-e" kan filer konkateneras korrekt. Inga sammanfogade sista och första rader, och inga Unicode byteordningsmarkeringar i mitten pÄ den konkatenerade filen. Exempel:

dos2unix -e -O fil1.txt fil2.txt > ut.txt

-o, --oldfile FIL 


GammalfilslÀge. Konvertera filen FIL och skriv över den med utmatningen. Programmet kör i detta lÀge som standard. Jokertecken i filnamn fÄr anvÀndas.

I gammalfilslĂ€ge (pĂ„-plats lĂ€ge) kommer den konverterade filen att fĂ„ samma Ă€gare, grupp samt lĂ€s-/skrivbehörigheter som originalfilen. Även dĂ„ filen konverteras av en annan anvĂ€ndare som har skrivbehörighet för filen (t.ex. anvĂ€ndaren root). Konverteringen kommer att avbrytas nĂ€r det inte Ă€r möjligt att bevara originalvĂ€rdena. Byte av Ă€gare skulle kunna innebĂ€ra att originalĂ€garen inte lĂ€ngre kan lĂ€sa filen. Byte av grupp skulle kunna vara en sĂ€kerhetsrisk, filen skulle kunna bli lĂ€sbar för anvĂ€ndare som den inte Ă€r avsedd för. Stöd för bevarande av Ă€gare, grupp och lĂ€s-/skrivbehörigheter finns bara i Unix.

För att kontrollera om dos2unix har stöd för att bevara anvÀndar- och gruppÀgarskap för filer skriv "dosunix -V".

Konvertering görs alltid via en temporÀrfil. NÀr ett fel intrÀffar halvvÀgs i konverteringen tas den temporÀra filen bort och originalfilen finns kvar intakt. Om konverteringen Àr framgÄngsrik kommer originalfilen att ersÀttas med temporÀrfilen. Du kanske har skrivrÀttigheter till originalfilen men inte rÀttigheter att stÀlla in samma anvÀndar- och/eller grupprÀttighetsegenskaper pÄ temporÀrfilen som originalfilen har. Detta innebÀr att du inte kan bevara anvÀndar- och/eller gruppÀgarskapet för originalfilen. I detta fall kan du anvÀnda flaggan "--allow-chown" för att fortsÀtta konverteringen:

dos2unix --allow-chown foo.txt

Ett annat alternativ Àr att anvÀnda nyfilslÀge:

dos2unix -n foo.txt foo.txt

Fördelen med flaggan "--allow-chown" Àr att du kan anvÀnda jokertecken och att Àgarskapsegenskaper om möjligt kommer att bevaras.

-q, --quiet

Tyst drift. Undertryck alla varningar och meddelanden. ReturvÀrdet Àr noll. Utom nÀr felaktiga kommandoradsflaggor anvÀnds.

-r, --remove-bom

Ta bort byteordningsmarkering (Byte Order Mark, BOM ). Skriv inte en BOM i utfilen. Detta Àr standardbeteende vid konvertering av Unix-radbrytningar. Se vidare flaggan "-b".

-s, --safe

Hoppa över binÀra filer (standard).

BinÀrfiler hoppas över för att undvika oavsiktliga misstag. Var medveten om att detektering av binÀrfiler inte Àr 100% sÀker. Infiler genomsöks efter binÀra symboler som typiskt inte Äterfinns i textfiler. Det Àr möjligt att en binÀrfil enbart innehÄller texttecken. En sÄdan binÀrfil kommer oavsiktligt att ses som en textfil.

-u, --keep-utf16

BehÄll infilens original UTF-16-kodning. Utfilen kommer att skrivas med samma UTF-16-kodning som infilen, omvÀnd eller rak byteordning (little eller big endian). Detta förhindrar transformation till UTF-8. En UTF-16 BOM kommer att skrivas i enlighet med detta. Denna flagga kan inaktiveras med "-ascii"-flaggan.

-ul, --assume-utf16le

Antag att infilsformatet Àr UTF-16LE.

NÀr det finns en byteordningsmarkering (Byte Order Mark) i infilen sÄ har BOM:en högre prioritet Àn denna flagga.

NÀr du har gjort fel antagande (infilen var inte i UTF-16LE-format) och konverteringens lyckas, kommer du att fÄ en UTF-8 utfil med felaktig text. Du kan göra denna konvertering ogjord med iconv (1) genom att konvertera UTF-8 utfilen tillbaka till UTF-16LE. Detta kommer att Äterskapa originalfilen.

Antagandet om UTF-16LE fungerar som ett konverteringslÀge . Genom att vÀxla till standard ascii -lÀget kommer UTF-16LE antagandet att stÀngas av.

-ub, --assume-utf16be

Antag att infilsformatet Àr UTF-16BE.

Denna flagga fungerar pÄ samma sÀtt som flaggan "-ul".

-v, --verbose

Visa utförliga meddelanden. Extra information visas om byteordningsmarkeringar och antalet konverterade radbrytningar.

-F, --follow-symlink

Följ symboliska lÀnkar och konvertera mÄlen.

-R, --replace-symlink

ErsÀtt symboliska lÀnkar med konverterade filer (originalmÄlfilerna förblir oförÀndrade).

-S, --skip-symlink

BehÄll symboliska lÀnkar och mÄl oförÀndrade (standard).

-V, --version

Visa versionsinformation och avsluta.

MAC-LÄGE

Som standard konverteras radbrytningar frÄn DOS till Unix och vice versa. Mac-radbrytningar konverteras inte.

I Mac-lÀge konverteras radbrytningar frÄn Mac till Unix och vice versa. DOS-radbrytningar Àndras ej.

För att köra i Mac-lÀge anvÀnd kommandoradsflaggan "-c mac" eller anvÀnd kommandona "mac2unix" eller "unix2mac".

KONVERTERINGSLÄGEN

ascii

Detta Àr standardkonverteringslÀget. Detta lÀge anvÀnds för att konvertera ASCII och ASCII-kompatibla kodade filer, sÄ som UTF-8. Att aktiveras ascii -lÀge inaktiverar 7bit - och iso -lÀge.

Om dos2unix har UTF-16 stöd kommer UTF-16-kodade filer att konverteras till kodningen för den aktuella lokalen pÄ POSIX-sytstem och till UTF-8 pÄ Windows. Aktivering av ascii -lÀget inaktiverar flaggan för att behÄlla UTF-16-kodning ("-u") och flaggorna för att anta UTF-16 indata ("-ul" och "-ub"). För att se om dos2unix har UTF-16-stöd skriv "dox2unix -V", se ocksÄ avsnittet UNICODE.

7bit

I detta lÀge konverteras alla 8-bitars icke-ASCII tecken (med vÀrden frÄn 128 till 255) till ett 7-bitars blanksteg.

iso

Tecken konverteras mellan DOS teckenuppsÀttning (teckentabell) och ISO teckenuppsÀttning ISO-8859-1 (Latin-1) pÄ Unix. DOS tecken utan motsvarande ISO-8859-1 tecken, för vilka konvertering Àr omöjligt, kommer att ersÀttas med en punkt. Detsamma gÀller för ISO-8859-1 tecken utan motsvarighet i DOS.

NÀr enbart flaggan "-iso" anvÀnds kommer dos2unix att försöka avgöra den aktiva teckentabellen. NÀr detta inte Àr möjligt kommer dos2unix att anvÀnda standardteckentabellen CP437, vilken huvudsakligen anvÀnds i USA. För att tvinga en specifik teckentabell anvÀnd flaggorna "-437" ( USA ), "-850" (VÀsteuropeisk), "-860" (Portugisisk), "-863" (Fransk-kanadensisk) eller "-865" (Nordisk). Det finns ocksÄ stöd för Windows-teckentabell CP-1252 (VÀsteuropeisk) via flaggan "-1252". För andra teckentabeller anvÀnd dos2unix i kombination med iconv (1). iconv kan konvertera mellan en lÄng lista av teckenkodningar.

AnvÀnd aldrig ISO-konvertering pÄ Unicode-textfiler. Det kommer att korrumpera UTF-8-kodade filer.

NÄgra exempel:

Konvertera frÄn DOS standardteckentabell till Unix Latin-1:

dos2unix -iso -n in.txt ut.txt

Konvertera frÄn DOS CP850 till Unix Latin-1:

dos2unix -850 -n in.txt ut.txt

Konvertera frÄn Windows CP1252 till Unix Latin-1:

dos2unix -1252 -n in.txt ut.txt

Konvertera frÄn Windows CP1252 till Unix UTF-8 (Unicode):

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

Konvertera frÄn Unix Latin-1 till DOS-standardteckentabell:

unix2dos -iso -n in.txt ut.txt

Konvertera frÄn Unix Latin-1 till DOS CP850:

unix2dos -850 -n in.txt ut.txt

Konvertera frÄn Unix Latin-1 till Windows CP1252:

unix2dos -1252 -n in.txt ut.txt

Konvertera frÄn Unix UTF-8 (Unicode) till Windows CP1252:

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

Se Àven <http://czyborra.com/charsets/codepages.html> och <http://czyborra.com/charsets/iso8859.html>.

UNICODE

Kodningar

Det finns flera olika Unicode kodningar. I Unix och Linux kodas filer vanligtvis med UTF-8-kodning. I Windows kan Unicode-textfiler kodas i UTF-8, UTF-16 eller UTF-16 rak byteordning (big endian), men kodas mestadels i UTF-16-format.

Konvertering

Unicode-textfiler kan ha DOS, Unix eller Mac-radbrytningar precis som ASCII-textfiler.

Alla versioner av dos2unix och unix2dos kan konvertera UTF-8-kodade filer, eftersom UTF-8 designades för bakÄtkompatibilitet med ASCII.

Dos2unix och unix2dos med Unicode-UTF-16-stöd, kan lÀsa UTF-16-kodade textfiler i omvÀnd och rak byteordning (little och big endian). För att se om dos2unix byggts med UTF-16-stöd skriv "dos2unix -V".

Under Unix/Linux kommer UTF-16-kodade filer att konverteras till lokalens teckenkodning. AnvÀnd kommandot locale (1) för att ta reda pÄ vilken lokalens teckenkodning Àr. NÀr konvertering inte Àr möjlig kommer ett konverteringsfel att intrÀffa och filen kommer att hoppas över.

Under Windows konverteras UTF-16-filer som standard till UTF-8. UTF-8-formaterade textfiler har bra stöd bÄde under Windows och Unix/Linux.

UTF-16- och UTF-8-kodning Àr fullt kompatibla, ingen text kommer att gÄ förlorad i konverteringen. NÀr ett UTF-16 till UTF-8-konverteringsfel uppstÄr, till exempel nÀr infilen i UTF-16-format innehÄller ett fel, kommer att filen att hoppas över.

NÀr flaggan "-u" anvÀnds kommer utfilen att skrivas med samma UTF-16-kodning som infilen. Flaggan "-u" förhindrar konvertering till UTF-8.

Dos2unix och unix2dos har ingen flagga för att konvertera UTF-8-filer till UTF-16.

ISO- och 7-bitarslÀgeskonvertering fungerar inte pÄ UTF-16-filer.

Byteordningsmarkering (Byte Order Mark)

I Windows har Unicode-textfiler typiskt en byteordningsmarkering (Byte Order Mark, BOM ) eftersom mÄnga Windows-program (inklusive Notepad) lÀgger till BOM:ar som standard. Se Àven <https://en.wikipedia.org/wiki/Byte_order_mark>.

I Unix har Unicode-textfiler typiskt ingen BOM. Filer antas vara kodade i den lokala teckenuppsÀttningen.

Dos2Unix kan bara detektera om en fil Àr i UTF-16-format om filen har en BOM. NÀr en UTF-16-fil inte har en BOM sÄ kommer dos2unix att de filen som en binÀrfil.

AnvÀnd flaggan "-ul" eller "-ub" för att konvertera en UTF-16-fil utan BOM.

Dos2unix skriver som standard ingen BOM i utfilen. Med flaggan "-b" kommer Dos2unix att skriva en BOM nÀr infilen har en BOM.

Unix2dos skriver som standard en BOM i utfilen nÀr infilen har en BOM. AnvÀnd flaggan "-r" för att ta bort BOM:en.

Dos2unix och unix2dos skriver alltid en BOM nÀr flaggan "-m" anvÀnds.

Unicode-filnamn under Windows

Dos2unix har valfritt stöd för lÀsning och skrivning av Unicode-filnamn i Windows kommandoprompt. Detta innebÀr att dos2unix kan öppna filer som har tecken i sina namn som inte Àr en del av systemets atandard ANSI-teckentabell. För att se om dos2unix för Windows byggdes med stöd för Unicode-filnamn skriv "dos2unix -V".

Det finns en del problem med att visa Unicode-filnamn i en Windows-konsol. Se vidare flaggan "-D", "--display-enc". Filnamnen kan visas felaktigt i konsolen, men filerna som skrivs kommer att ha de korrekta namnen.

Unicode-exempel

Konvertera frÄn Windows UTF-16 (med BOM ) till Unix UTF-8:

dos2unix -n in.txt ut.txt

Konvertera frÄn Windows UTF-16LE (utan BOM ) till Unix UTF-8:

dos2unix -ul -n in.txt ut.txt

Konvertera frÄn Unix UTF-8 till Windows UTF-8 med BOM:

unix2dos -m -n in.txt ut.txt

Konvertera frÄn Unix UTF-8 till Windows UTF-16:

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

GB18030

GB18030 Àr en standard frÄn Kinesiska regeringen. En obligatorisk delmÀngd av standarden GB18030 krÀvs officiellt för alla programvaruprodukter som sÀljs i Kina. Se vidare <https://en.wikipedia.org/wiki/GB_18030>.

GB18030 Àr fullstÀndigt kompatibel med Unicode och kan anses vara ett överföringsformat för unicode. Precis som UTF-8 Àr GB18030 kompatibel med ASCII. GB18030 Àr ocksÄ kompatibel med Windows-teckentabell 936, ocksÄ kÀnd som GBK.

Under Unix/Linux kommer UTF-16-filer att konverteras till GB18030 nÀr lokalens teckenkodning Àr instÀlld pÄ GB18030. Notera att detta endast kommer att fungera om lokalen har stöd i systemet. AnvÀnd kommandot "locale -a" för att fÄ en lista över de lokaler som stöds.

Under Windows mÄste du anvÀnda flaggan "-gb" för att konvertera UTF-16-filer till GB18030.

GB18030-kodade filer kan ha en byteordningsmarkering, precis som Unicode-filer.

EXEMPEL

LĂ€sa inmatning frĂ„n “stdin“ och skriv utmatning till “stdout“:

dos2unix < a.txt
cat a.txt | dos2unix

Konvertera och ersÀtta a.txt. Konvertera och ersÀtt b.txt:

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

Konvertera och ersÀtt a.txt i ascii-konverteringslÀge:

dos2unix a.txt

Konvertera och ersÀtt a.txt i ascii-konverteringslÀge, konvertera och ersÀtt b.txt i 7bit-konverteringslÀge:

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

Konvertera a.txt frÄn Mac- till Unix-format:

dos2unix -c mac a.txt
mac2unix a.txt

Konvertera a.txt frÄn Unix- till Mac-format:

unix2dos -c mac a.txt
unix2mac a.txt

Konvertera och ersÀtt a.txt medan originalet tidsstÀmpel behÄlls:

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

Konvertera a.txt och skriv till e.txt:

dos2unix -n a.txt e.txt

Konvertera a.txt och skriv till e.txt, lÄt e.txt behÄlla tidsstÀmpeln frÄn a.txt:

dos2unix -k -n a.txt e.txt

Konvertera och ersÀtt a.txt, konvertera b.txt och skriv till e.txt:

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

Konvertera c.txt och skriv till e.txt, konvertera och ersÀtt a.txt, konvertera och ersÀtt b.txt, konvertera d.txt och skriv till f.txt:

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

REKURSIV KONVERTERING

I ett Unix-skal kan kommandona find (1) och xargs (1) anvÀndas för att köra dos2unix rekursivt över alla textfiler i ett katalogtrÀd. För att till exempel konvertera alla .txt-filer i katalogtrÀdet under den aktuella katalogen skriv:

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

Flaggan "-print0" till find (1) och motsvarande flagga "-0" till xargs (1) behövs nÀr det finns filer med mellanslag eller citationstecken i namnet. Annars kan dessa flaggor utelÀmnas. Ett annat alternativ Àr att anvÀndas find (1) med flaggan "-exec":

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

I en Windows-kommandoprompt kan följande kommando anvÀndas:

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

PowerShell-anvÀndare kan anvÀnda följande kommando i Windows PowerShell:

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

LOKALISERING

LANG

Det primÀra sprÄket vÀljs med miljövariabeln LANG. LANG-variabeln bestÄr av flera delas. Den första delen Àr sprÄkkoden i gemener. Den andra delen Àr valfri och utgör landskoden i versaler, föregÄngen av ett understreck. Det finns ocksÄ en valfri tredje del: teckenkodning, föregÄngen av en punkt. Ett par exempel för skal av POSIX-standard-typ:

export LANG=nl NederlÀndska
export LANG=nl_NL NederlÀndska, NederlÀnderna
export LANG=nl_BE NederlÀndska, Belgien
export LANG=es_ES Spanska, Spanien
export LANG=es_MX Spanska, Mexiko
export LANG=en_US.iso88591 Engelska, USA, Latin-1-kodning
export LANG=en_GB.UTF-8 Engelska, UK, UTF-8-kodning

För en fullstÀndig lista över sprÄk och landskoder se vidare i gettext-manualen: <https://www.gnu.org/software/gettext/manual/html_node/Usual-Language-Codes.html>

PÄ Unix-system kan du anvÀnda kommando locale (1) för att fÄ lokal-specifik information.

LANGUAGE

Med miljövariabeln LANGUAGE kan du ange en prioritetslista över sprĂ„k, separerade med kolon. Dos2unix kommer att ge företrĂ€de till LANGAUGE över LANG. Exempelvis först nederlĂ€ndska och sedan tyska: "LANGUAGE=nl:de". Du mĂ„ste först ha aktiverat lokalisering, genom att sĂ€tta LANG (eller LC_ALL ) till ett vĂ€rde annat Ă€n “C“, innan du kan anvĂ€nda en prioritetslista för sprĂ„k via LANGUAGE-variabeln. Se vidare i gettext-manualen: <https://www.gnu.org/software/gettext/manual/html_node/The-LANGUAGE-variable.html>

Om du vÀljer ett sprÄk som inte Àr tillgÀnglig kommer du att fÄ engelska meddelanden som standard.

DOS2UNIX_LOCALEDIR

Med miljövariabeln DOS2UNIX_LOCALEDIR kan LOCALEDIR som stÀllts in vid kompilering ÄsidosÀttas. LOCALEDIR anvÀnds för att hitta sprÄkfiler. StandardvÀrdet för GNU-program Àr "/usr/local/share/locale". Flaggan --version kommer att visa vilken LOCALEDIR som anvÀnds.

Exempel (POSIX-skal):

export DOS2UNIX_LOCALEDIR=$HOME/share/locale

RETURVÄRDE

Om allt gÄr bra kommer noll att returneras. NÀr ett systemfel uppstÄr kommer det senaste systemfelet att returneras. För andra fel kommer 1 att returneras.

ReturvÀrdet Àr alltid noll i tyst lÀge, utom nÀr felaktiga kommandoradsflaggor anvÀnds.

STANDARDER

<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>

FÖRFATTARE

Benjamin Lin - <blin@socs.uts.edu.au>, Bernd Johannes Wuebben (mac2unix-lÀge) - <wuebben@kde.org>, Christian Wurll (lÀgg till en extra radbrytning) - <wurll@ira.uka.de>, Erwin Waterlander - <waterlan@xs4all.nl> (upphovsman)

Projektsida: <https://waterlan.home.xs4all.nl/dos2unix.html>

SourceForge-sida: <https://sourceforge.net/projects/dos2unix/>

SE ÄVEN

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