dos2unix - konverterare för textfilsformat från DOS/Mac till Unix
och vice versa
dos2unix [flaggor] [FIL …] [-n INFIL UTFIL …]
unix2dos [flaggor] [FIL …] [-n INFIL UTFIL …]
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.
- --
- 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
- Konvertera enbart radbrytningar. Detta är
standardkonverteringsläget.
- -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".
- -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".
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.
- 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.
- 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
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.
- -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.
I normalläge 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".
- ascii
- I läget "ascii" konverteras enbart
radbrytningar. Detta är standardkonverteringsläget.
Även om namnet på detta läge är ASCII, vilket
är en 7-bitarsstandard, så är det läget
egentligen ett 8-bitarsläge. Använd alltid detta läge
vid konvertering av Unicode UTF-8-filer.
- 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>.
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.
Unicode-textfiler kan ha DOS, Unix eller Mac-radbrytningar precis som vanliga
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.
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
<
http://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.
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.
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 ä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
<
http://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.
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
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}
- 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:
<http://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:
<http://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
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.
<
http://en.wikipedia.org/wiki/Text_file>
<
http://en.wikipedia.org/wiki/Carriage_return>
<
http://en.wikipedia.org/wiki/Newline>
<
http://en.wikipedia.org/wiki/Unicode>
Benjamin Lin - <
[email protected]>, Bernd Johannes Wuebben
(mac2unix-läge) - <
[email protected]>, Christian Wurll (lägg
till en extra radbrytning) - <
[email protected]>, Erwin Waterlander -
<
[email protected]> (upphovsman)
Projektsida: <
http://waterlan.home.xs4all.nl/dos2unix.html>
SourceForge-sida: <
http://sourceforge.net/projects/dos2unix/>
file(1) find(1) iconv(1) locale(1)
xargs(1)