NAZWA
    dos2unix - konwerter formatu plików tekstowych między systemami DOS/Mac
    a Uniksem

SKŁADNIA
        dos2unix [opcje] [PLIK ...] [-n PLIK_WEJ PLIK_WYJ ...]
        unix2dos [opcje] [PLIK ...] [-n PLIK_WEJ PLIK_WYJ ...]

OPIS
    Pakiet Dos2unix zawiera narzędzia "dos2unix" oraz "unix2dos" do
    konwersji zwykłych plików tekstowych między formatami używanymi w
    systemach DOS lub Mac a formatem uniksowym.

    W plikach tekstowych systemu DOS/Windows oznaczenie końca linii to
    połączenie dwóch znaków: powrotu karetki (CR) i przesunięcia linii (LF).
    W uniksowych plikach tekstowych koniec linii to pojedynczy znak LF. W
    plikach tekstowych systemu Mac sprzed Mac OS X koniec linii był
    pojedynczym znakiem CR. Obecnie Mac OS wykorzystuje uniksowe końce linii
    (LF).

    Oprócz oznaczeń końców linii Dos2unix potrafi konwertować także
    kodowanie plików. Kilko stron kodowych DOS-a może być przekonwertowanych
    do uniksowego Latin-1, a windowsowy Unicode (UTF-16) do
    powszechniejszego pod Uniksem kodowania Unicode UTF-8.

    Pliki binarne są pomijane automatycznie, chyba że konwersja zostanie
    wymuszona.

    Pliki inne niż zwykłe, np. katalogi lub FIFO, są pomijane automatycznie.

    Dowiązania symboliczne i ich cele są domyślnie pozostawiane bez zmian.
    Dowiązania symboliczne mogą być opcjonalnie zastępowane, albo wyjście
    może być zapisywane do celu dowiązania. Zapis do celu dowiązania
    symbolicznego nie jest obsługiwane pod Windows.

    Dos2unix powstał na podstawie narzędzia dos2unix z systemu
    SunOS/Solaris. Jest jedna istotna różnica w stosunku do oryginalnej
    wersji z SunOS-a/Solarisa: ta wersja domyślnie wykonuje konwersję w
    miejscu (tryb starego pliku), podczas gdy oryginalna obsługiwała tylko
    konwersję parami (tryb nowego pliku) - p. także opcje "-o" i "-n".

OPCJE
    --  Potraktowanie wszystkich kolejnych opcji jako nazw plików. Tej opcji
        należy użyć, aby przekonwertować pliki, których nazwy zaczynają się
        od minusa. Przykładowo, aby przekonwertować plik o nazwie "-foo",
        można użyć polecenia:

            dos2unix -- -foo

        Lub w trybie nowego pliku:

            dos2unix -n -- -foo out.txt

    -ascii
        Konwersja tylko znaków końca linii. Jest to domyślny tryb konwersji.

    -iso
        Konwersja między zestawami znaków DOS i ISO-8859-1. Więcej w sekcji
        TRYBY KONWERSJI.

    -1252
        Użycie strony kodowej Windows 1252 (zachodnioeuropejskiej).

    -437
        Użycie strony kodowej DOS 437 (US). Jest to domyślna strona kodowa
        używana przy konwersji ISO.

    -850
        Użycie strony kodowej DOS 850 (zachodnioeuropejskiej).

    -860
        Użycie strony kodowej DOS 860 (portugalskiej).

    -863
        Użycie strony kodowej DOS 863 (kanadyjskiej francuskiej).

    -865
        Użycie strony kodowej DOS 865 (nordyckiej).

    -7  Konwersja znaków 8-bitowych do przestrzeni 7-bitowej.

    -b, --keep-bom
        Zachowanie znaku BOM (Byte Order Makr). Jeżeli plik wejściowy
        zawiera BOM, powoduje zapisanie go w pliku wyjściowym. Jest to
        domyślne zachowanie przy konwersji na DOS-owe końce linii. P. także
        opcja "-r".

    -c, --convmode TRYB_KONW
        Ustawienie trybu konwersji. TRYB_KONW to jeden z: *ascii*, *7bit*,
        *iso*, *mac*, przy czym domyślny jest ascii.

    -f, --force
        Wymuszenie konwersji plików binarnych.

    -h, --help
        Wyświetlenie opisu i zakończenie.

    -k, --keepdate
        Zachowanie znacznika czasu pliku wyjściowego takiego samego, jak
        pliku wejściowego.

    -L, --license
        Wyświetlenie licencji programu.

    -l, --newline
        Dodanie dodatkowego znaku końca linii.

        dos2unix: tylko DOS-owe znaki końca linii są zamieniane na dwa
        uniksowe. W trybie Mac tylko macowe znaki końca linii są zamieniane
        na dwa uniksowe.

        unix2dos: tylko uniksowe znaki końca linii są zamieniane na dwa
        DOS-owe. W trybie Mac uniksowe znaki końca linii są zamieniane na
        dwa macowe.

    -m, --add-bom
        Zapis znacznika BOM (Byte Order Mark) UTF-8 w pliku wyjściowym. Nie
        należy używać tej opcji, jeśli kodowanie wyjściowe jest inne niż
        UTF-8. Więcej w sekcji UNICODE.

    -n, --newfile PLIK_WEJ PLIK_WYJ ...
        Tryb nowego pliku. Konwersja PLIKU_WEJ z zapisem wyjścia do
        PLIKU_WYJ. Nazwy plików muszą być podane parami, a masek *nie*
        należy używać, gdyż *spowoduje* to utratę plików.

        Osoba uruchamiająca konwersję w trybie nowego pliku (par) będzie
        właścicielem przekonwertowanego pliku. Prawa odczytu/zapisu nowego
        pliku będą pochodziły z praw pliku oryginalnego po odjęciu umask(1)
        osoby uruchamiającej konwersję.

    -o, --oldfile PLIK ...
        Tryb starego pliku. Konwersja PLIKU i nadpisanie go wyjściem.
        Program działa domyślnie w tym trybie. Można używać masek.

        W trybie starego pliku (w miejscu) przekonwertowany plik otrzymuje
        tego samego właściciela, grupę oraz prawa odczytu/zapisu, jak plik
        oryginalny - także wtedy, gdy plik jest konwertowany przez innego
        użytkownika, mającego prawo zapisu do pliku (np. przez użytkownika
        root). Konwersja zostanie przerwana, jeśli nie będzie możliwe
        zachowanie oryginalnych wartości. Zmiana właściciela mogłaby
        oznaczać, że pierwotny właściciel nie może już odczytać pliku.
        Zmiana grupy mogłaby być zagrożeniem bezpieczeństwa, plik mógłby być
        czytelny dla nie zamierzonych osób. Zachowanie właściciela, grupy i
        praw odczytu/zapisu jest obsługiwane tylko na Uniksie.

    -q, --quiet
        Tryb cichy. Pominięcie wszystkich ostrzeżeń i komunikatów. Zwracanym
        kodem jest zero, chyba że podano błędne opcje linii poleceń.

    -r, --remove-bom
        Usunięcie znaków BOM (Byte Order Mark). Bez zapisywania BOM do pliku
        wyjściowego. Jest to domyślne zachowanie przy konwersji na uniksowe
        końce linii. P. także opcja "-b".

    -s, --safe
        Pominięcie plików binarnych (domyślne).

    -ul, --assume-utf16le
        Przyjęcie, że format pliku wejściowego to UTF-16LE.

        Jeśli w pliku wejściowym jest znacznik BOM (Byte Order Mark), ma on
        priorytet nad tą opcją.

        Jeśli przyjęto błędne założenie (plik wejściowy nie jest w formacie
        UTF-16LE), a konwersja się uda, wynikiem będzie plik wyjściowy UTF-8
        ze złym tekstem. Konwersję tę można odwrócić przy użyciu polecenia
        iconv(1) do konwersji wyjścia UTF-8 z powrotem do UTF-16LE.
        Przywróci to plik oryginalny.

        Przyjęcie UTF-16LE działa jako *tryb konwersji*. Przy przełączeniu
        na domyślny tryb *ascii* przyjęcie UTF-16LE jest wyłączane.

    -ub, --assume-utf16be
        Przyjęcie, że format pliku wejściowego to UTF-16BE.

        Ta opcja działa analogicznie do "-ul".

    -F, --follow-symlink
        Podążanie za dowiązaniami symbolicznymi i konwertowanie ich celów

    -R, --replace-symlink
        Zastępowanie dowiązań symbolicznych przekonwertowanymi plikami
        (oryginalne pliki docelowe pozostają bez zmian).

    -S, --skip-symlink
        Pozostawienie dowiązań symbolicznych i celów bez zmian (domyślne).

    -V, --version
        Wyświetlenie informacji o wersji i zakończenie.

TRYB MAC
    W zwykłym trybie znaki końca linii są konwertowane z DOS-a do Uniksa i
    odwrotnie. Znaki końca linii systemu Mac nie są konwertowane.

    W trybie Mac znaki końca linii są konwertowane z formatu Maca do Uniksa
    i odwrotnie. Znaki końca linii systemu DOS nie są zmieniane.

    Aby uruchomić program w trybie Mac, należy użyć opcji linii poleceń "-c
    mac" albo użyć poleceń "mac2unix" lub "unix2mac".

TRYBY KONWERSJI
    ascii
        W trybie "ascii" konwertowane są tylko końce linii. Jest to domyślny
        tryb konwersji.

        Mimo że nazwa tego trybu to ASCII, które jest standardem 7-bitowym,
        jest to tryb 8-bitowy. Należy zawsze używać tego trybu przy
        konwersji plików Unicode UTF-8.

    7bit
        W tym trybie wszystkie znaki 8-bitowe spoza ASCII (o wartościach od
        128 do 255) są konwertowane do przestrzeni 7-bitowej.

    iso W tym trybie znaki są konwertowane między zestawem znaków DOS
        (stroną kodową) a zestawem znaków ISO-8859-1 (Latin-1) używanym na
        Uniksie. Znaki DOS-owe nie mające odpowiednika w ISO-8859-1, których
        nie da się przekonwertować, są zamieniane na kropkę. To samo dotyczy
        znaków ISO-8859-1 bez odpowiednika w DOS-ie.

        Jeśli używana jest tylko opcja "-iso", dos2unix próbuje wykryć
        aktywną stronę kodową. Jeśli nie jest to możliwe, dos2unix używa
        domyślnej strony kodowej CP437, stosowanej głównie w USA. Aby
        wymusić określoną stronę kodową, należy użyć opcji -437 (US), -850
        (zachodnioeuropejska), -860 (portugalska), -863 (kanadyjska
        francuska) lub -865 (nordycka). Ponadto obsługiwana jest strona
        kodowa Windows CP1252 (zachodnioeuropejska) przy użyciu opcji -1252.
        W przypadku innych stron kodowych można użyć narzędzia dos2unix wraz
        z iconv(1). Iconv potrafi konwertować między wieloma kodowaniami
        znaków.

        Nigdy nie należy używać konwersji ISO na plikach tekstowych w
        Unicode. Uszkodziłaby pliki kodowane UTF-8.

        Kilka przykładów:

        Konwersja z domyślnej strony kodowej DOS do uniksowego Latin-1

            dos2unix -iso -n in.txt out.txt

        Konwersja ze strony DOS CP850 do uniksowego Latin-1

            dos2unix -850 -n in.txt out.txt

        Konwersja ze strony Windows CP1252 do uniksowego Latin-1

            dos2unix -1252 -n in.txt out.txt

        Konwersja ze strony Windows CP1252 do uniksowego UTF-8 (Unicode)

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

        Konwersa z uniksowego Latin-1 do domyślnej strony kodowej DOS

            unix2dos -iso -n in.txt out.txt

        Konwersja z uniksowego Latin-1 do strony DOS CP850

            unix2dos -850 -n in.txt out.txt

        Konwersja z uniksowego Latin-1 do strony Windows CP1252

            unix2dos -1252 -n in.txt out.txt

        Konwersja z uniksowego UTF-8 (Unicode) do strony Windows CP1252

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

        Więcej pod adresem <http://czyborra.com/charsets/codepages.html>
        oraz <http://czyborra.com/charsets/iso8859.html>.

UNICODE
  Kodowania
    Istnieją różne kodowania Unicode. Pod Uniksem i Linuksem pliki Unicode
    są zwykle kodowane z użyciem UTF-8. Pod Windows pliki tekstowe Unicode
    mogą być kodowane w UTF-8, UTF-16, UTF-16 big-endian, ale przeważnie są
    kodowane w UTF-16.

  Konwersje
    Pliki tekstowe Unicode mogą mieć znaki końca linii systemu DOS, Unix lub
    Mac, podobnie jak zwykłe pliki tekstowe.

    Wszystkie wersje dos2unix i unix2dos potrafią konwertować pliki kodowane
    UTF-8, ponieważ UTF-8 jest wstecznie zgodne z ASCII.

    Dos2unix i unix2dos z obsługą Unicode UTF-16 potrafią odczytywać pliki
    tekstowe kodowane UTF-16 little- oraz big-endian. Aby sprawdzić, czy
    dos2unix został zbudowany z obsługą UTF-16, należy napisać "dos2unix
    -V".

    Wersje programów dos2unix i unix2dos dla systemu Windows konwertują
    pliki kodowane UTF-16 zawsze do UTF-8. Uniksowe wersje dos2unix/unix2dos
    konwertują pliki kodowane UTF-16 do zestawu znaków ustawionej
    lokalizacji, kiedy jest ustawiony na UTF-8. Zestaw znaków lokalizacji
    można sprawdzić poleceniem locale(1).

    Ponieważ pliki tekstowe kodowane UTF-8 są dobrze obsługiwane zarówno pod
    Windows, jak i Uniksem, dos2unix i unix2dos nie mają opcji zapisu plików
    UTF-16. Wszystkie znaki UTF-16 mogą być zakodowane w UTF-8, konwersja z
    UTF-16 do UTF-8 jest bezstratna. Pliki UTF-16 będą pominięte na Uniksie,
    jeśli zestaw znaków lokalizacji to nie UTF-8, aby zapobiec przypadkowej
    utracie tekstu. W przypadku błędu konwersji UTF-16 do UTF-8, na przykład
    kiedy plik wejściowy UTF-16 zawiera błąd, plik będzie pominięty.

    Tryby konwersji ISO i 7-bit nie działają na plikach UTF-16.

  Znacznik BOM
    W systemie Windows pliki tekstowe zwykle zawierają znacznik BOM (Byte
    Order Mark), ponieważ wiele programów dla Windows (w tym Notepad) dodaje
    domyślnie znaczniki BOM. Więcej informacji można znaleźć pod adresem
    <http://pl.wikipedia.org/wiki/BOM_(informatyka)>.

    Pod Uniksem pliki Unicode zwykle nie mają znacznika BOM. Pliki tekstowe
    są traktowane jako kodowane zgodnie z kodowaniem znaków ustawionej
    lokalizacji.

    Dos2unix potrafi wykryć tylko, czy plik jest w formacie UTF-16, jeśli
    zawiera znacznik BOM. Jeśli plik UTF-16 nie ma tego znacznika, dos2unix
    potraktuje plik jako binarny.

    Do konwersji pliku UTF-16 bez znacznika BOM można użyć opcji "-ul" lub
    "-ub".

    Dos2unix nie zapisuje domyślnie znaku BOM w pliku wyjściowym. Z opcją
    "-b" Dos2unix zapisuje BOM, jeśli plik wejściowy zawiera BOM.

    Unix2dos domyślnie zapisuje znaczniki BOM w pliku wyjściowym, jeśli plik
    wejściowy ma BOM. Aby usunąć BOM, można użyć opcji "-r".

    Dos2unix oraz unix2dos zawsze zapisują znaczniki BOM, jeśli użyta
    zostanie opcja "-m".

  Przykłady Unicode
    Konwersja pliku UTF-16 z Windows (z BOM) do uniksowego UTF-8

        dos2unix -n in.txt out.txt

    Konwersja pliku UTF-16LE z Windows (bez BOM) do uniksowego UTF-8

        dos2unix -ul -n in.txt out.txt

    Konwersja z uniksowego UTF-8 do UTF-8 dla Windows z BOM

        unix2dos -m -n in.txt out.txt

    Konwersja z uniksowego UTF-8 do UTF-16 dla Windows

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

PRZYKŁADY
    Odczyt ze standardowego wejścia i zapis na standardowe wyjście.

        dos2unix
        dos2unix -l -c mac

    Konwersja i zastąpienie a.txt; konwersja i zastąpienie b.txt.

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

    Konwersja i zastąpienie a.txt w trybie ascii.

        dos2unix a.txt

    Konwersja i zastąpienie a.txt w trybie ascii; konwersja i zastąpienie
    b.txt w trybie 7-bitowym.

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

    Konwersja a.txt z formatu Mac do formatu uniksowego.

        dos2unix -c mac a.txt
        mac2unix a.txt

    Konwersja a.txt z formatu uniksowego do formatu Mac.

        unix2dos -c mac a.txt
        unix2mac a.txt

    Konwersja i zastąpienie a.txt z zachowaniem oryginalnego znacznika
    czasu.

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

    Konwersja a.txt i zapis do e.txt.

        dos2unix -n a.txt e.txt

    Konwersja a.txt i zapis do e.txt z zachowaniem znacznika czasu e.txt
    takiego, jak a.txt.

        dos2unix -k -n a.txt e.txt

    Konwersja i zastąpienie a.txt; konwersja b.txt i zapis do e.txt.

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

    Konwersja c.txt i zapis do e.txt; konwersja i zastąpienie a.txt;
    konwersja i zastąpienie b.txt; konwersja d.txt i zapis do f.txt.

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

KONWERSJA REKURENCYJNA
    Można użyć dos2unix w połączeniu z poleceniami find(1) i xargs(1) do
    rekurencyjnej konwersji plików tekstowych w strukturze drzewa katalogów.
    Na przykład, aby przekonwertować wszystkie pliki .txt w drzewie
    katalogów poniżej katalogu bieżącego, należy napisać:

        find . -name *.txt |xargs dos2unix

LOKALIZACJA
    LANG
        Główny język wybiera się zmienną środowiskową LANG. Zmienna LANG
        składa się z kilku części. Pierwsza część to małe litery oznaczające
        kod języka. Druga część jest opcjonalna i zawiera kod kraju pisany
        wielkimi literami, poprzedzony podkreśleniem. Jest także opcjonalna
        trzecia część: kodowanie znaków, poprzedzone kropką. Kilka
        przykładów dla powłok zgodnych ze standardem POSIX:

            export LANG=nl               holenderski
            export LANG=nl_NL            holenderski, Holandia
            export LANG=nl_BE            holenderski, Belgia
            export LANG=es_ES            hiszpański, Hiszpania
            export LANG=es_MX            hiszpański, Meksyk
            export LANG=en_US.iso88591   angielski, USA, kodowanie Latin-1
            export LANG=en_GB.UTF-8      angielski, Wlk. Brytania, kodowanie UTF-8

        Pełną listę kodów języków i krajów można znaleźć w podręczniku do
        gettexta:
        <http://www.gnu.org/software/gettext/manual/gettext.html#Language-Co
        des>

        W systemach uniksowych do uzyskania informacji dotyczących
        lokalizacji można użyć polecenia locale(1).

    LANGUAGE
        Przy użyciu zmiennej środowiskowej LANGUAGE można określić listę
        języków wg priorytetu, oddzielonych dwukropkami. Dos2unix przyjmuje
        pierwszeństwo zmiennej LANGUAGE nad LANG. Na przykład, najpierw
        holenderski, następnie niemiecki: "LANGUAGE=nl:de". Aby skorzystać z
        listy wg priorytetów ze zmiennej LANGUAGE, trzeba najpierw włączyć
        lokalizację przez ustawienie zmiennej LANG (lub LC_ALL) na wartość
        inną niż "C". Więcej informacji znajduje się w podręczniku do
        gettexta:
        <http://www.gnu.org/software/gettext/manual/gettext.html#The-LANGUAG
        E-variable>

        W przypadku wybrania niedostępnego języka, otrzymamy standardowe,
        angielskie komunikaty.

    DOS2UNIX_LOCALEDIR
        Przy użyciu zmiennej środowiskowej DOS2UNIX_LOCALEDIR, można
        nadpisać ustawienie LOCALEDIR z czasu kompilacji. LOCALEDIR to
        katalog używany do znalezienia plików lokalizacji. Domyślną
        wartością dla GNU jest "/usr/local/share/locale". Opcja --version
        wyświetla używaną wartość LOCALEDIR.

        Przykład (dla powłoki POSIX):

            export DOS2UNIX_LOCALEDIR=$HOME/share/locale

WARTOŚĆ ZWRACANA
    W przypadku powodzenia zwracane jest zero. Jeśli wystąpi błąd systemowy,
    zwracany jest ostatni błąd systemowy. W przypadku innych błędów zwracane
    jest 1.

    Wartość zwracana w trybie cichym to zawsze zero, z wyjątkiem sytuacji
    podania błędnych opcji linii poleceń.

STANDARDY
    <http://pl.wikipedia.org/wiki/Plik_tekstowy>

    <http://en.wikipedia.org/wiki/Carriage_return>

    <http://pl.wikipedia.org/wiki/End-of-line>

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

AUTORZY
    Benjamin Lin <blin@socs.uts.edu.au>; Bernd Johannes Wuebben (tryb
    mac2unix) <wuebben@kde.org>; Christian Wurll (dodawanie dodatkowej nowej
    linii) <wurll@ira.uka.de>; Erwin Waterlander <waterlan@xs4all.nl>
    (prowadzący)

    Strona projektu: <http://waterlan.home.xs4all.nl/dos2unix.html>

    Strona SourceForge: <http://sourceforge.net/projects/dos2unix/>

    Strona Freecode: <http://freecode.com/projects/dos2unix>

ZOBACZ TAKŻE
    file(1) find(1) iconv(1) locale(1) xargs(1)

