- NAAM
- OVERZICHT
- BESCHRIJVING
- OPTIES
- MAC-MODUS
- CONVERSIEMODI
- UNICODE
  - Coderingen
  - Conversie
  - Byte Order Mark
  - Unicode-voorbeelden
- VOORBEELDEN
- RECURSIEVE CONVERSIE
- LOKALISATIE
- AFSLUITWAARDE
- STANDAARDEN
- AUTEURS
- ZIE OOK

# NAAM

dos2unix - omzetter van tekstbestandsindelingen, van DOS/Mac naar Unix en vice versa

# OVERZICHT

        dos2unix [opties] [BESTAND ...] [-n INVOERBESTAND UITVOERBESTAND ...]
        unix2dos [opties] [BESTAND ...] [-n INVOERBESTAND UITVOERBESTAND ...]

# BESCHRIJVING

Het Dos2unix pakket bevat de toepassingen `dos2unix` en `unix2dos` om platte tekstbestanden in DOS- of Mac-indeling naar Unix-indeling om te zetten, en vice versa.

In DOS/Windows-tekstbestanden bestaat een regeleinde uit een combinatie van twee tekens: een 'Carriage Return' (CR) gevolgd door een 'Line Feed' (LF). In Unix-tekstbestanden bestaat een regeleinde uit één enkel 'Newline'-teken, dat gelijk is aan een DOS 'Line Feed'-teken (LF). In Mac-tekstbestanden, van vóór Mac OS X, bestaan regeleindes uit één enkel 'Carriage Return'-teken. Mac OS X is op Unix gebaseerd en heeft dezelfde regeleindes als Unix.

Naast regeleindes kan Dos2unix ook de codering van bestanden converteren. Enkele DOS-codetabellen kunnen omgezet worden naar Unix Latin-1. En Windows Unicode-bestanden (UTF-16) kunnen geconverteerd worden naar Unix Unicode-bestanden (UTF-8).

Binaire bestanden worden automatisch overgeslagen, behalve als de omzetting geforceerd wordt.

Niet-reguliere bestanden, zoals mappen en FIFO's, worden automatisch overgeslagen.

Symbolische koppelingen en hun doelen blijven standaard onaangeroerd. Optioneel kunnen symbolische koppelingen worden vervangen, of de uitvoer kan naar het doel van de symbolische koppeling worden geschreven. Op Windows wordt het schrijven naar het doel van een symbolische koppeling niet ondersteund.

Dos2unix is gemodelleerd naar dos2unix op SunOS/Solaris, maar er is één belangrijk verschil: deze versie van dos2unix voert standaard een vervangende conversie uit (oud-bestand-modus) terwijl de oorspronkelijke SunOS/Solaris-versie alleen de gepaarde conversie (nieuw-bestand-modus) kent. Zie ook de opties `-o` en `-n`.

# OPTIES

--

  Alle volgende opties als bestandsnamen behandelen. Gebruik deze optie als u een bestand wilt converteren waarvan de naam met een streepje begint. Bijvoorbeeld, om een bestand genaamd "-foo" om te zetten, gebruikt u de volgende opdracht:

          dos2unix -- -foo

  Of in nieuw-bestand-modus:

          dos2unix -n -- -foo uit.txt

-ascii

  Alleen regeleindes converteren. Dit is de standaardconversiemodus.

-iso

  Conversie tussen de tekensets DOS en ISO-8859-1. Zie ook de sectie CONVERSIEMODI.

-1252

  Windows-codetabel 1252 (West-Europees) gebruiken.

-437

  DOS-codetabel 437 (VS) gebruiken. Dit is de standaard codetabel die gebruikt wordt bij ISO-conversie.

-850

  DOS-codetabel 850 (West-Europees) gebruiken.

-860

  DOS-codetabel 860 (Portugees) gebruiken.

-863

  DOS-codetabel 863 (Canadees Frans) gebruiken.

-865

  DOS-codetabel 865 (Scandinavisch) gebruiken.

-7

  Lettertekens met het achtste bit gezet converteren naar spaties.

-b, --keep-bom

  Keep Byte Order Mark (BOM). When the input file has a BOM, write a BOM in the output file. This is the default behavior when converting to DOS line breaks. See also option `-r`.

-c, --convmode CONVERSIEMODUS

  De te gebruiken conversiemodus. CONVERSIEMODUS kan zijn: ascii, 7bit, iso, of mac, waarbij ascii de standaardinstelling is.

-f, --force

  Conversie van binaire bestanden afdwingen.

-h, --help

  Een hulptekst tonen.

-k, --keepdate

  Het tijdsstempel van het invoerbestand behouden voor het uitvoerbestand.

-L, --license

  De softwarelicentie tonen.

-l, --newline

  Een extra regeleinde toevoegen.

  dos2unix: Alleen DOS-regeleindes worden omgezet naar twee Unix-regeleindes. In Mac-modus worden alleen Mac-regeleindes omgezet naar twee Unix-regeleindes.

  unix2dos: Alleen Unix-regeleindes worden omgezet naar twee DOS-regeleindes. In Mac-modus worden Unix-regeleindes omgezet naar twee Mac-regeleindes.

-m, --add-bom

  Een UTF-8 'Byte Order Mark' in het uitvoerbestand schrijven. Gebruik deze optie nooit als de codering van het uitvoerbestand géén UTF-8 is. Zie ook de sectie UNICODE.

-n, --newfile INVOERBESTAND UITVOERBESTAND ...

  Nieuw-bestand-modus. Het bestand INVOERBESTAND converteren en naar bestand UITVOERBESTAND schrijven. Bestandsnamen moeten opgegeven worden in paren. Jokertekens moeten nietgebruikt worden, anders verlies je de bestanden.

  De gebruiker die de conversie start in nieuw-bestand (gepaarde) modus wordt de eigenaar van het geconverteerde bestand. De lees/schrijf-toegangsrechten van het nieuwe bestand worden de toegangsrechten van het originele bestand minus de umask(1) van de gebruiker die de conversie draait.

-o, --oldfile BESTAND ...

  Oud-bestand-modus. Het bestand BESTAND converteren en overschrijven. Dit is de standaard modus. Jokertekens kunnen gebruikt worden.

  In oud-bestand (vervangende) modus krijgt het geconverteerde bestand dezelfde eigenaar, groep en lees/schrijf-rechten als het originele bestand. Ook wanneer het bestand wordt omgezet door een andere gebruiker die schrijfrechten heeft op het bestand (b.v. gebruiker root). De omzetting wordt afgebroken wanneer het niet mogelijk is de originele waardes te behouden. Verandering van eigenaar kan betekenen dat de originele eigenaar het bestand niet meer kan lezen. Verandering van groep zou een veiligheidsrisico kunnen zijn, het bestand zou leesbaar kunnen worden voor personen voor wie het niet bestemd is. Behoud van eigenaar, groep en lees/schrijf-rechten wordt alleen ondersteund op Unix.

-q, --quiet

  Stille werking. Alle waarschuwingen onderdrukken. De aflsuitwaarde is nul, behalve wanneer verkeerde opties worden gegeven.

-r, --remove-bom

  Remove Byte Order Mark (BOM). Do not write a BOM in the output file. This is the default behavior when converting to Unix line breaks. See also option `-b`.

-s, --safe

  Binaire bestanden overslaan (standaard).

-ul, --assume-utf16le

  Veronderstellen dat de indeling van het invoerbestand UTF-16LE is.

  Wanneer het invoerbestand een Byte Order Mark (BOM) bevat, dan gaat deze BOM vóór deze optie.

  Wanneer een verkeerde aanname is gemaakt (het invoerbestand was geen UTF-16LE) en de conversie verliep met succes, dan krijgt u een UTF-8-bestand met verkeerde tekst. De verkeerde conversie kan ongedaan worden gemaakt door met iconv(1) het UTF-8-uitvoerbestand terug om te zetten naar UTF-16LE. Dit zal het originele bestand terug brengen.

  De aanname van UTF-16LE werkt als een conversiemodus. Door de standaardmodus ascii in te schakelen wordt de UTF-16LE-veronderstelling uitgeschakeld.

-ub, --assume-utf16be

  Veronderstellen dat de indeling van het invoerbestand UTF-16BE is.

  Deze optie werkt hetzelfde als optie `-ul`.

-F, --follow-symlink

  Symbolische koppelingen volgen en de doelen converteren.

-R, --replace-symlink

  Symbolische koppelingen vervangen door geconverteerde bestanden (de originele doelbestanden blijven ongewijzigd).

-S, --skip-symlink

  Symbolische koppelingen en doelen ongewijzigd laten (standaard).

-V, --version

  Versie-informatie tonen.

# MAC-MODUS

In normale modus worden DOS-regeleindes naar Unix omgezet en vice versa. Mac-regeleindes worden niet omgezet.

In Mac-modus worden Mac-regeleindes naar Unix omgezet en vice versa. DOS-regeleindes blijven ongewijzigd.

Om in Mac-modus te draaien kunt u de opdrachtregeloptie `-c mac` gebruiken, of de opdrachten `mac2unix` of `unix2mac`.

# CONVERSIEMODI

ascii

  In modus `ascii` worden alleen regeleindes omgezet. Dit is de standaardmodus.

  Hoewel de naam van deze modus ASCII is, wat een 7-bits standaard is, is de werkelijke modus 8-bits. Gebruik altijd deze modus wanneer u Unicode UTF-8-bestanden omzet.

7bit

  Alle 8-bits niet-ASCII lettertekens (met waardes van 128 t/m 255) worden omgezet naar een 7-bits spatie.

iso

  Tekens worden omgezet tussen een DOS-tekenset (codetabel) en ISO-tekenset ISO-8859-1 (Latin-1) op Unix. DOS-tekens zonder een ISO-8859-1-equivalent, waarvoor dus geen omzetting mogelijk is, worden omgezet in een punt. Hetzelfde geldt voor ISO-8859-1-tekens zonder DOS tegenhanger.

  Wanneer alleen optie `-iso` gebruikt wordt, zal dos2unix proberen de actieve codetabel te gebruiken. Als dat niet mogelijk is wordt codetabel CP437 gebruikt, die met name in de VS gebruikt word. Om een bepaalde codetabel te forceren, u de opties `-850` (West-Europees), `-860` (Portugees), `-863` (Canadees Frans) of `-865` (Scandinavisch) gebruiken. Windows-codetabel CP1252 (West-Europees) wordt ook ondersteund met optie `-1252`. Gebruik voor andere codetabellen dos2unix in combinatie met iconv(1). Iconv kan omzetten tussen een lange lijst tekensetcoderingen.

  Gebruik ISO-conversie nooit op Unicode-tekstbestanden. Het zal UTF-8-gecodeerde bestanden beschadigen.

  Enkele voorbeelden:

  Omzetten van de standaard DOS-codetabel naar Unix Latin-1

          dos2unix -iso -n in.txt uit.txt

  Omzetten van DOS CP850 naar Unix Latin-1

          dos2unix -850 -n in.txt uit.txt

  Omzetten van Windows CP1252 naar Unix Latin-1

          dos2unix -1252 -n in.txt uit.txt

  Omzetten van Windows CP1252 naar Unix UTF-8 (Unicode)

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

  Omzetten van Unix Latin-1 naar de standaard DOS-codetabel

          unix2dos -iso -n in.txt uit.txt

  Omzetten van Unix Latin-1 naar DOS CP850

          unix2dos -850 -n in.txt uit.txt

  Omzetten van Unix Latin-1 naar Windows CP1252

          unix2dos -1252 -n in.txt uit.txt

  Omzetten van Unix UTF-8 (Unicode) naar Windows CP1252

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

  Zie ook http://czyborra.com/charsets/codepages.html en http://czyborra.com/charsets/iso8859.html.

# UNICODE

## Coderingen

Er bestaan verschillende Unicode-coderingen. Op Unix en Linux zijn Unicode-bestanden typisch gecodeerd in UTF-8. Op Windows kunnen Unicode-tekstbestanden gecodeerd zijn in UTF-8, UTF-16 of UTF-16 big endian, maar ze zijn meestal gecodeerd in UTF-16.

## Conversie

Unicode-tekstbestanden kunnen DOS-, Unix- of Mac-regeleindes hebben, net als reguliere tekstbestanden.

Alle versies van dos2unix en unix2dos kunnen UTF-8-gecodeerde bestanden omzetten, want UTF-8 is ontworpen op compatibiliteit met ASCII.

Dos2unix en unix2dos met Unicode UTF-16-ondersteuning, kunnen little en big endian UTF-16 gecodeerde tekstbestanden lezen. Om er achter te komen of dos2unix gebouwd is met UTF-16- ondersteuning, typt u `dos2unix -V`.

De Windows-versies van dos2unix en unix2dos converteren UTF-16 -gecodeerde bestanden altijd naar UTF-8-gecodeerde bestanden. Unix-versies van dos2unix/unix2dos zetten UTF-16-gecodeerde bestanden om naar de lokale tekencodering als die gelijk is aan UTF-8. Gebruik de opdracht locale(1) om uit te vinden wat de lokale tekencodering is.

Omdat UTF-8-gecodeerde tekstbestanden zowel op Windows en Unix goed ondersteund worden, hebben dos2unix en unix2dos geen optie om UTF-16-bestanden te schrijven. Alle UTF-16-tekens kunnen worden omgezet naar UTF-8. De omzetting van UTF-16 naar UTF-8 is verliesvrij. Op Unix worden UTF-16-bestanden overgeslagen als de lokale tekencodering ongelijk is aan UTF-8, om te voorkomen dat er per ongeluk tekst verloren gaat. Wanneer een conversiefout van UTF-16 naar UTF-8 optreedt, bijvoorbeeld wanneer het UTF-16-invoerbestand een fout bevat, wordt het bestand overgeslagen.

ISO- en 7-bits-conversie werken niet op UTF-16-bestanden.

## Byte Order Mark

Op Windows bevatten Unicode-tekstbestanden typisch een 'Byte Order Mark' (BOM), omdat veel Windows-programma's (inclusief Kladblok) standaard een BOM toevoegen. Zie ook http://en.wikipedia.org/wiki/Byte_order_mark.

Op Unix hebben Unicode-tekstbestanden typisch geen BOM. Er wordt aangenomen dat de codering van tekstbestanden gelijk is aan de lokale tekencodering.

Dos2unix kan alleen detecteren of een bestand in UTF-16-codering is als het bestand een BOM bevat. Wanneer een UTF-16-bestand geen BOM heeft, ziet dos2unix het bestand als een binair bestand.

Gebruik optie `-ul` of `-ub` om een UTF-16-bestand zonder BOM om te zetten.

Dos2unix writes by default no BOM in the output file. With option `-b` Dos2unix writes a BOM when the input file has a BOM.

Unix2dos writes by default a BOM in the output file when the input file has a BOM. Use option `-r` to remove the BOM.

Dos2unix and unix2dos write always a BOM when option `-m` is used.

## Unicode-voorbeelden

Omzetten van Windows UTF-16 (met BOM) naar Unix UTF-8

        dos2unix -n in.txt uit.txt

Omzetten van Windows UTF-16LE (zonder BOM) naar Unix UTF-8

        dos2unix -ul -n in.txt uit.txt

Omzetten van Unix UTF-8 naar Windows UTF-8 met BOM

        unix2dos -m -n in.txt uit.txt

Omzetten van Unix UTF-8 naar Windows UTF-16

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

# VOORBEELDEN

Invoer lezen van standaardinvoer en uitvoer schrijven naar standaarduitvoer.

        dos2unix
        dos2unix -l -c mac

Omzetten en vervangen van a.txt. Omzetten en vervangen van b.txt.

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

Omzetten en vervangen van a.txt in ascii-conversiemodus.

        dos2unix a.txt

Omzetten en vervangen van a.txt in ascii-conversiemodus. Omzetten en vervangen b.txt in 7-bits conversiemodus.

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

Omzetten van a.txt van Mac- naar Unix-indeling.

        dos2unix -c mac a.txt
        mac2unix a.txt

Omzetten van a.txt van Unix- naar Mac-indeling.

        unix2dos -c mac a.txt
        unix2mac a.txt

Omzetten en vervangen van a.txt met behoud van origineel tijdsstempel.

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

Omzetten van a.txt en naar e.txt schrijven.

        dos2unix -n a.txt e.txt

Omzetten van a.txt en naar e.txt schrijven, met tijdsstempel van e.txt gelijk aan die van a.txt.

        dos2unix -k -n a.txt e.txt

Omzetten en vervangen van a.txt. Omzetten van b.txt en naar e.txt schrijven.

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

Omzetten van c.txt en naar e.txt schrijven. Omzetten en vervangen van a.txt. Omzetten en vervangen van b.txt. Omzetten van d.txt en naar f.txt schrijven.

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

# RECURSIEVE CONVERSIE

Gebruik dos2unix in combinatie met de opdrachten find(1) en xargs(1) om tekstbestanden in een mappenboom recursief om te zetten. Bijvoorbeeld om alle .txt-bestanden in de mappenboom onder de huidige map te converteren, typt u:

        find . -name *.txt |xargs dos2unix

# LOKALISATIE

LANG

  The primaire taal wordt geselecteerd via de omgevingsvariabele LANG. De variabele LANG bestaat uit verschillende onderdelen. Het eerste deel is in kleine letters de taalcode. Het tweede deel is optioneel en is de landcode in hoofdletters, voorafgegaan door een liggend streepje. Er is ook een optioneel derde deel: de tekencodering, voorafgegaan door een punt. Enkele voorbeelden voor een POSIX-shell:

          export LANG=nl               Nederlands
          export LANG=nl_NL            Nederlands, Nederland
          export LANG=nl_BE            Nederlands, België
          export LANG=es_ES            Spaans, Spanje
          export LANG=es_MX            Spaans, Mexico
          export LANG=en_US.iso88591   Engels, VS, Latin-1-codering
          export LANG=en_GB.UTF-8      Engels, GB, UTF-8-codering

  Voor een complete lijst van taal- en landcodes zie de gettext-handleiding: http://www.gnu.org/software/gettext/manual/gettext.html#Language-Codes

  Op Unix-systemen kunt u de opdracht locale(1) gebruiken om specifieke taalregio-informatie te verkrijgen.

LANGUAGE

  Met de omgevingsvariabele LANGUAGE kunt u een prioriteitenlijst specificeren van talen, gescheiden door dubbele punten. Dos2unix geeft voorrang aan LANGUAGE boven LANG. Bijvoorbeeld, eerst Nederlands en dan Duits: `LANGUAGE=nl:de`. U moet eerst lokalisatie in werking stellen, door het instellen van LANG (of LC_ALL) op een waarde ongelijk aan "C", voordat u een talen-prioriteitenlijst kunt gebruiken via de variabele LANGUAGE. Zie ook de gettext-handleiding: http://www.gnu.org/software/gettext/manual/gettext.html#The-LANGUAGE-variable

  Als u een taal kiest die niet beschikbaar is, worden de standaard Engelse berichten gebruikt.

DOS2UNIX_LOCALEDIR

  Met de omgevingsvariabele DOS2UNIX_LOCALEDIR kan de LOCALEDIR die ingesteld werd tijdens compilatie worden overstemd. LOCALEDIR wordt gebruikt om de taalbestanden te vinden. De GNU standaardwaarde is `/usr/local/share/locale`. De optie --version laat de gebruikte LOCALEDIR zien.

  Voorbeeld (POSIX-shell):

          export DOS2UNIX_LOCALEDIR=$HOME/share/locale

# AFSLUITWAARDE

Bij succes wordt nul teruggegeven. Wanneer een systeemfout optreedt wordt het laatste systeemfoutnummer teruggegeven. Bij andere fouten wordt 1 teruggegeven.

De afsluitwaarde is altijd nul in de stillewerkingsmodus, behalve wanneer verkeerde opties worden gegeven.

# STANDAARDEN

http://nl.wikipedia.org/wiki/Tekstbestand

http://nl.wikipedia.org/wiki/Carriage_Return

http://nl.wikipedia.org/wiki/Linefeed

<http://nl.wikipedia.org/wiki/Unicode>

# AUTEURS

Benjamin Lin - <blin@socs.uts.edu.au> Bernd Johannes Wuebben (mac2unix-modus) - <wuebben@kde.org>, Christian Wurll (toevoegen van extra regeleindes) - <wurll@ira.uka.de>, Erwin Waterlander - <waterlan@xs4all.nl> (beheerder)

Projectpagina: http://waterlan.home.xs4all.nl/dos2unix.html

SourceForge-pagina: http://sourceforge.net/projects/dos2unix/

Freecode: http://freecode.com/projects/dos2unix

# ZIE OOK

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