2 dos2unix - konwerter formatu plików tekstowych między systemami DOS/Mac
6 dos2unix [opcje] [PLIK ...] [-n PLIK_WEJ PLIK_WYJ ...]
7 unix2dos [opcje] [PLIK ...] [-n PLIK_WEJ PLIK_WYJ ...]
10 Pakiet Dos2unix zawiera narzędzia "dos2unix" oraz "unix2dos" do
11 konwersji zwykłych plików tekstowych między formatami używanymi w
12 systemach DOS lub Mac a formatem uniksowym.
14 W plikach tekstowych systemu DOS/Windows oznaczenie końca linii to
15 połączenie dwóch znaków: powrotu karetki (CR) i przesunięcia linii (LF).
16 W uniksowych plikach tekstowych koniec linii to pojedynczy znak LF. W
17 plikach tekstowych systemu Mac sprzed Mac OS X koniec linii był
18 pojedynczym znakiem CR. Obecnie Mac OS wykorzystuje uniksowe końce linii
21 Oprócz oznaczeń końców linii Dos2unix potrafi konwertować także
22 kodowanie plików. Kilko stron kodowych DOS-a może być przekonwertowanych
23 do uniksowego Latin-1, a windowsowy Unicode (UTF-16) do
24 powszechniejszego pod Uniksem kodowania Unicode UTF-8.
26 Pliki binarne są pomijane automatycznie, chyba że konwersja zostanie
29 Pliki inne niż zwykłe, np. katalogi lub FIFO, są pomijane automatycznie.
31 Dowiązania symboliczne i ich cele są domyślnie pozostawiane bez zmian.
32 Dowiązania symboliczne mogą być opcjonalnie zastępowane, albo wyjście
33 może być zapisywane do celu dowiązania. Zapis do celu dowiązania
34 symbolicznego nie jest obsługiwane pod Windows.
36 Dos2unix powstał na podstawie narzędzia dos2unix z systemu
37 SunOS/Solaris. Jest jedna istotna różnica w stosunku do oryginalnej
38 wersji z SunOS-a/Solarisa: ta wersja domyślnie wykonuje konwersję w
39 miejscu (tryb starego pliku), podczas gdy oryginalna obsługiwała tylko
40 konwersję parami (tryb nowego pliku) - p. także opcje "-o" i "-n".
43 -- Potraktowanie wszystkich kolejnych opcji jako nazw plików. Tej opcji
44 należy użyć, aby przekonwertować pliki, których nazwy zaczynają się
45 od minusa. Przykładowo, aby przekonwertować plik o nazwie "-foo",
50 Lub w trybie nowego pliku:
52 dos2unix -n -- -foo out.txt
55 Konwersja tylko znaków końca linii. Jest to domyślny tryb konwersji.
58 Konwersja między zestawami znaków DOS i ISO-8859-1. Więcej w sekcji
62 Użycie strony kodowej Windows 1252 (zachodnioeuropejskiej).
65 Użycie strony kodowej DOS 437 (US). Jest to domyślna strona kodowa
66 używana przy konwersji ISO.
69 Użycie strony kodowej DOS 850 (zachodnioeuropejskiej).
72 Użycie strony kodowej DOS 860 (portugalskiej).
75 Użycie strony kodowej DOS 863 (kanadyjskiej francuskiej).
78 Użycie strony kodowej DOS 865 (nordyckiej).
80 -7 Konwersja znaków 8-bitowych do przestrzeni 7-bitowej.
83 Zachowanie znaku BOM (Byte Order Makr). Jeżeli plik wejściowy
84 zawiera BOM, powoduje zapisanie go w pliku wyjściowym. Jest to
85 domyślne zachowanie przy konwersji na DOS-owe końce linii. P. także
88 -c, --convmode TRYB_KONW
89 Ustawienie trybu konwersji. TRYB_KONW to jeden z: *ascii*, *7bit*,
90 *iso*, *mac*, przy czym domyślny jest ascii.
93 Wymuszenie konwersji plików binarnych.
96 Wyświetlenie opisu i zakończenie.
99 Zachowanie znacznika czasu pliku wyjściowego takiego samego, jak
103 Wyświetlenie licencji programu.
106 Dodanie dodatkowego znaku końca linii.
108 dos2unix: tylko DOS-owe znaki końca linii są zamieniane na dwa
109 uniksowe. W trybie Mac tylko macowe znaki końca linii są zamieniane
112 unix2dos: tylko uniksowe znaki końca linii są zamieniane na dwa
113 DOS-owe. W trybie Mac uniksowe znaki końca linii są zamieniane na
117 Zapisanie znacznika BOM (Byte Order Mark) w pliku wyjściowym.
118 Domyślnie zapisywany jest BOM UTF-8.
120 Jeśli plik wejściowy jest w kodowaniu UTF-16 i użyto opcji "-u",
121 zostanie zapisany BOM UTF-16.
123 Nigdy nie należy używać tej opcji, jeśli kodowanie wyjściowe jest
124 inne niż UTF-8 lub UTF-16. Więcej w sekcji UNICODE.
126 -n, --newfile PLIK_WEJ PLIK_WYJ ...
127 Tryb nowego pliku. Konwersja PLIKU_WEJ z zapisem wyjścia do
128 PLIKU_WYJ. Nazwy plików muszą być podane parami, a masek *nie*
129 należy używać, gdyż *spowoduje* to utratę plików.
131 Osoba uruchamiająca konwersję w trybie nowego pliku (par) będzie
132 właścicielem przekonwertowanego pliku. Prawa odczytu/zapisu nowego
133 pliku będą pochodziły z praw pliku oryginalnego po odjęciu umask(1)
134 osoby uruchamiającej konwersję.
136 -o, --oldfile PLIK ...
137 Tryb starego pliku. Konwersja PLIKU i nadpisanie go wyjściem.
138 Program działa domyślnie w tym trybie. Można używać masek.
140 W trybie starego pliku (w miejscu) przekonwertowany plik otrzymuje
141 tego samego właściciela, grupę oraz prawa odczytu/zapisu, jak plik
142 oryginalny - także wtedy, gdy plik jest konwertowany przez innego
143 użytkownika, mającego prawo zapisu do pliku (np. przez użytkownika
144 root). Konwersja zostanie przerwana, jeśli nie będzie możliwe
145 zachowanie oryginalnych wartości. Zmiana właściciela mogłaby
146 oznaczać, że pierwotny właściciel nie może już odczytać pliku.
147 Zmiana grupy mogłaby być zagrożeniem bezpieczeństwa, plik mógłby być
148 czytelny dla nie zamierzonych osób. Zachowanie właściciela, grupy i
149 praw odczytu/zapisu jest obsługiwane tylko na Uniksie.
152 Tryb cichy. Pominięcie wszystkich ostrzeżeń i komunikatów. Zwracanym
153 kodem jest zero, chyba że podano błędne opcje linii poleceń.
156 Usunięcie znaków BOM (Byte Order Mark). Bez zapisywania BOM do pliku
157 wyjściowego. Jest to domyślne zachowanie przy konwersji na uniksowe
158 końce linii. P. także opcja "-b".
161 Pominięcie plików binarnych (domyślne).
164 Zachowanie oryginalnego kodowania pliku wejściowego UTF-16. Plik
165 wyjściowy zostanie zapisany w tym samym kodowaniu UTF-16 (little lub
166 big endian), co plik wejściowy. Zapobiega to przekształceniu do
167 UTF-8. Do pliku zostanie zapisany odpowiedni znacznik BOM UTF-16. Tę
168 opcję można wyłączyć opcją "-ascii".
170 -ul, --assume-utf16le
171 Przyjęcie, że format pliku wejściowego to UTF-16LE.
173 Jeśli w pliku wejściowym jest znacznik BOM (Byte Order Mark), ma on
174 priorytet nad tą opcją.
176 Jeśli przyjęto błędne założenie (plik wejściowy nie jest w formacie
177 UTF-16LE), a konwersja się uda, wynikiem będzie plik wyjściowy UTF-8
178 ze złym tekstem. Konwersję tę można odwrócić przy użyciu polecenia
179 iconv(1) do konwersji wyjścia UTF-8 z powrotem do UTF-16LE.
180 Przywróci to plik oryginalny.
182 Przyjęcie UTF-16LE działa jako *tryb konwersji*. Przy przełączeniu
183 na domyślny tryb *ascii* przyjęcie UTF-16LE jest wyłączane.
185 -ub, --assume-utf16be
186 Przyjęcie, że format pliku wejściowego to UTF-16BE.
188 Ta opcja działa analogicznie do "-ul".
191 Wyświetlanie szczegółowych komunikatów. Wyświetlane śa dodatkowe
192 informacje o znacznikach BOM (Byte Order Mark) oraz liczbie
193 przekonwertowanych końców linii.
196 Podążanie za dowiązaniami symbolicznymi i konwertowanie ich celów
198 -R, --replace-symlink
199 Zastępowanie dowiązań symbolicznych przekonwertowanymi plikami
200 (oryginalne pliki docelowe pozostają bez zmian).
203 Pozostawienie dowiązań symbolicznych i celów bez zmian (domyślne).
206 Wyświetlenie informacji o wersji i zakończenie.
209 W zwykłym trybie znaki końca linii są konwertowane z DOS-a do Uniksa i
210 odwrotnie. Znaki końca linii systemu Mac nie są konwertowane.
212 W trybie Mac znaki końca linii są konwertowane z formatu Maca do Uniksa
213 i odwrotnie. Znaki końca linii systemu DOS nie są zmieniane.
215 Aby uruchomić program w trybie Mac, należy użyć opcji linii poleceń "-c
216 mac" albo użyć poleceń "mac2unix" lub "unix2mac".
220 W trybie "ascii" konwertowane są tylko końce linii. Jest to domyślny
223 Mimo że nazwa tego trybu to ASCII, które jest standardem 7-bitowym,
224 jest to tryb 8-bitowy. Należy zawsze używać tego trybu przy
225 konwersji plików Unicode UTF-8.
228 W tym trybie wszystkie znaki 8-bitowe spoza ASCII (o wartościach od
229 128 do 255) są konwertowane do przestrzeni 7-bitowej.
231 iso W tym trybie znaki są konwertowane między zestawem znaków DOS
232 (stroną kodową) a zestawem znaków ISO-8859-1 (Latin-1) używanym na
233 Uniksie. Znaki DOS-owe nie mające odpowiednika w ISO-8859-1, których
234 nie da się przekonwertować, są zamieniane na kropkę. To samo dotyczy
235 znaków ISO-8859-1 bez odpowiednika w DOS-ie.
237 Jeśli używana jest tylko opcja "-iso", dos2unix próbuje wykryć
238 aktywną stronę kodową. Jeśli nie jest to możliwe, dos2unix używa
239 domyślnej strony kodowej CP437, stosowanej głównie w USA. Aby
240 wymusić określoną stronę kodową, należy użyć opcji -437 (US), -850
241 (zachodnioeuropejska), -860 (portugalska), -863 (kanadyjska
242 francuska) lub -865 (nordycka). Ponadto obsługiwana jest strona
243 kodowa Windows CP1252 (zachodnioeuropejska) przy użyciu opcji -1252.
244 W przypadku innych stron kodowych można użyć narzędzia dos2unix wraz
245 z iconv(1). Iconv potrafi konwertować między wieloma kodowaniami
248 Nigdy nie należy używać konwersji ISO na plikach tekstowych w
249 Unicode. Uszkodziłaby pliki kodowane UTF-8.
253 Konwersja z domyślnej strony kodowej DOS do uniksowego Latin-1
255 dos2unix -iso -n in.txt out.txt
257 Konwersja ze strony DOS CP850 do uniksowego Latin-1
259 dos2unix -850 -n in.txt out.txt
261 Konwersja ze strony Windows CP1252 do uniksowego Latin-1
263 dos2unix -1252 -n in.txt out.txt
265 Konwersja ze strony Windows CP1252 do uniksowego UTF-8 (Unicode)
267 iconv -f CP1252 -t UTF-8 in.txt | dos2unix > out.txt
269 Konwersa z uniksowego Latin-1 do domyślnej strony kodowej DOS
271 unix2dos -iso -n in.txt out.txt
273 Konwersja z uniksowego Latin-1 do strony DOS CP850
275 unix2dos -850 -n in.txt out.txt
277 Konwersja z uniksowego Latin-1 do strony Windows CP1252
279 unix2dos -1252 -n in.txt out.txt
281 Konwersja z uniksowego UTF-8 (Unicode) do strony Windows CP1252
283 unix2dos < in.txt | iconv -f UTF-8 -t CP1252 > out.txt
285 Więcej pod adresem <http://czyborra.com/charsets/codepages.html>
286 oraz <http://czyborra.com/charsets/iso8859.html>.
290 Istnieją różne kodowania Unicode. Pod Uniksem i Linuksem pliki Unicode
291 są zwykle kodowane z użyciem UTF-8. Pod Windows pliki tekstowe Unicode
292 mogą być kodowane w UTF-8, UTF-16, UTF-16 big-endian, ale przeważnie są
296 Pliki tekstowe Unicode mogą mieć znaki końca linii systemu DOS, Unix lub
297 Mac, podobnie jak zwykłe pliki tekstowe.
299 Wszystkie wersje dos2unix i unix2dos potrafią konwertować pliki kodowane
300 UTF-8, ponieważ UTF-8 jest wstecznie zgodne z ASCII.
302 Dos2unix i unix2dos z obsługą Unicode UTF-16 potrafią odczytywać pliki
303 tekstowe kodowane UTF-16 little- oraz big-endian. Aby sprawdzić, czy
304 dos2unix został zbudowany z obsługą UTF-16, należy napisać "dos2unix
307 Pliki w kodowaniu UTF-16 są domyślnie konwertowane do UTF-8. Pod
308 Uniksem/Linuksem wymagane jest, żeby kodowanie znaków używanej
309 lokalizacji było ustawione na UTF-8. Kodowanie znaków dla lokalizacji
310 można sprawdzić poleceniem locale(1). Pliki tekstkowe w kodowaniu UTF-8
311 są dobrze obsługiwane zarówno pod Windows, jak i Uniksem/Linuksem.
313 Kodowania UTF-16 i UTF-8 są w pełni zgodne, konwersja nie spowoduje
314 utraty żadnej części tekstu. W przypadku wystąpienia błędu konwersji, na
315 przykład w przypadku błędu w pliku wejściowym UTF-16, plik zostanie
318 W przypadku użycia opcji "-u", plik wejściowy zostanie zapisany w tym
319 samym kodowaniu UTF-16, co plik wejściowy. Opcja "-u" zapobiega
322 Dos2unix oraz unix2dos nie mają opcji pozwalającej na konwersję plików
325 Tryby konwersji ISO i 7-bit nie działają na plikach UTF-16.
328 W systemie Windows pliki tekstowe zwykle zawierają znacznik BOM (Byte
329 Order Mark), ponieważ wiele programów dla Windows (w tym Notepad) dodaje
330 domyślnie znaczniki BOM. Więcej informacji można znaleźć pod adresem
331 <http://pl.wikipedia.org/wiki/BOM_(informatyka)>.
333 Pod Uniksem pliki Unicode zwykle nie mają znacznika BOM. Pliki tekstowe
334 są traktowane jako kodowane zgodnie z kodowaniem znaków ustawionej
337 Dos2unix potrafi wykryć tylko, czy plik jest w formacie UTF-16, jeśli
338 zawiera znacznik BOM. Jeśli plik UTF-16 nie ma tego znacznika, dos2unix
339 potraktuje plik jako binarny.
341 Do konwersji pliku UTF-16 bez znacznika BOM można użyć opcji "-ul" lub
344 Dos2unix nie zapisuje domyślnie znaku BOM w pliku wyjściowym. Z opcją
345 "-b" Dos2unix zapisuje BOM, jeśli plik wejściowy zawiera BOM.
347 Unix2dos domyślnie zapisuje znaczniki BOM w pliku wyjściowym, jeśli plik
348 wejściowy ma BOM. Aby usunąć BOM, można użyć opcji "-r".
350 Dos2unix oraz unix2dos zawsze zapisują znaczniki BOM, jeśli użyta
354 Konwersja pliku UTF-16 z Windows (z BOM) do uniksowego UTF-8
356 dos2unix -n in.txt out.txt
358 Konwersja pliku UTF-16LE z Windows (bez BOM) do uniksowego UTF-8
360 dos2unix -ul -n in.txt out.txt
362 Konwersja z uniksowego UTF-8 do UTF-8 dla Windows z BOM
364 unix2dos -m -n in.txt out.txt
366 Konwersja z uniksowego UTF-8 do UTF-16 dla Windows
368 unix2dos < in.txt | iconv -f UTF-8 -t UTF-16 > out.txt
371 Odczyt ze standardowego wejścia i zapis na standardowe wyjście.
376 Konwersja i zastąpienie a.txt; konwersja i zastąpienie b.txt.
379 dos2unix -o a.txt b.txt
381 Konwersja i zastąpienie a.txt w trybie ascii.
385 Konwersja i zastąpienie a.txt w trybie ascii; konwersja i zastąpienie
386 b.txt w trybie 7-bitowym.
388 dos2unix a.txt -c 7bit b.txt
389 dos2unix -c ascii a.txt -c 7bit b.txt
390 dos2unix -ascii a.txt -7 b.txt
392 Konwersja a.txt z formatu Mac do formatu uniksowego.
394 dos2unix -c mac a.txt
397 Konwersja a.txt z formatu uniksowego do formatu Mac.
399 unix2dos -c mac a.txt
402 Konwersja i zastąpienie a.txt z zachowaniem oryginalnego znacznika
408 Konwersja a.txt i zapis do e.txt.
410 dos2unix -n a.txt e.txt
412 Konwersja a.txt i zapis do e.txt z zachowaniem znacznika czasu e.txt
415 dos2unix -k -n a.txt e.txt
417 Konwersja i zastąpienie a.txt; konwersja b.txt i zapis do e.txt.
419 dos2unix a.txt -n b.txt e.txt
420 dos2unix -o a.txt -n b.txt e.txt
422 Konwersja c.txt i zapis do e.txt; konwersja i zastąpienie a.txt;
423 konwersja i zastąpienie b.txt; konwersja d.txt i zapis do f.txt.
425 dos2unix -n c.txt e.txt -o a.txt b.txt -n d.txt f.txt
427 KONWERSJA REKURENCYJNA
428 Można użyć dos2unix w połączeniu z poleceniami find(1) i xargs(1) do
429 rekurencyjnej konwersji plików tekstowych w strukturze drzewa katalogów.
430 Na przykład, aby przekonwertować wszystkie pliki .txt w drzewie
431 katalogów poniżej katalogu bieżącego, należy napisać:
433 find . -name *.txt |xargs dos2unix
437 Główny język wybiera się zmienną środowiskową LANG. Zmienna LANG
438 składa się z kilku części. Pierwsza część to małe litery oznaczające
439 kod języka. Druga część jest opcjonalna i zawiera kod kraju pisany
440 wielkimi literami, poprzedzony podkreśleniem. Jest także opcjonalna
441 trzecia część: kodowanie znaków, poprzedzone kropką. Kilka
442 przykładów dla powłok zgodnych ze standardem POSIX:
444 export LANG=nl holenderski
445 export LANG=nl_NL holenderski, Holandia
446 export LANG=nl_BE holenderski, Belgia
447 export LANG=es_ES hiszpański, Hiszpania
448 export LANG=es_MX hiszpański, Meksyk
449 export LANG=en_US.iso88591 angielski, USA, kodowanie Latin-1
450 export LANG=en_GB.UTF-8 angielski, Wlk. Brytania, kodowanie UTF-8
452 Pełną listę kodów języków i krajów można znaleźć w podręczniku do
454 <http://www.gnu.org/software/gettext/manual/gettext.html#Language-Co
457 W systemach uniksowych do uzyskania informacji dotyczących
458 lokalizacji można użyć polecenia locale(1).
461 Przy użyciu zmiennej środowiskowej LANGUAGE można określić listę
462 języków wg priorytetu, oddzielonych dwukropkami. Dos2unix przyjmuje
463 pierwszeństwo zmiennej LANGUAGE nad LANG. Na przykład, najpierw
464 holenderski, następnie niemiecki: "LANGUAGE=nl:de". Aby skorzystać z
465 listy wg priorytetów ze zmiennej LANGUAGE, trzeba najpierw włączyć
466 lokalizację przez ustawienie zmiennej LANG (lub LC_ALL) na wartość
467 inną niż "C". Więcej informacji znajduje się w podręczniku do
469 <http://www.gnu.org/software/gettext/manual/gettext.html#The-LANGUAG
472 W przypadku wybrania niedostępnego języka, otrzymamy standardowe,
473 angielskie komunikaty.
476 Przy użyciu zmiennej środowiskowej DOS2UNIX_LOCALEDIR, można
477 nadpisać ustawienie LOCALEDIR z czasu kompilacji. LOCALEDIR to
478 katalog używany do znalezienia plików lokalizacji. Domyślną
479 wartością dla GNU jest "/usr/local/share/locale". Opcja --version
480 wyświetla używaną wartość LOCALEDIR.
482 Przykład (dla powłoki POSIX):
484 export DOS2UNIX_LOCALEDIR=$HOME/share/locale
487 W przypadku powodzenia zwracane jest zero. Jeśli wystąpi błąd systemowy,
488 zwracany jest ostatni błąd systemowy. W przypadku innych błędów zwracane
491 Wartość zwracana w trybie cichym to zawsze zero, z wyjątkiem sytuacji
492 podania błędnych opcji linii poleceń.
495 <http://pl.wikipedia.org/wiki/Plik_tekstowy>
497 <http://en.wikipedia.org/wiki/Carriage_return>
499 <http://pl.wikipedia.org/wiki/End-of-line>
501 <http://pl.wikipedia.org/wiki/Unicode>
504 Benjamin Lin <blin@socs.uts.edu.au>; Bernd Johannes Wuebben (tryb
505 mac2unix) <wuebben@kde.org>; Christian Wurll (dodawanie dodatkowej nowej
506 linii) <wurll@ira.uka.de>; Erwin Waterlander <waterlan@xs4all.nl>
509 Strona projektu: <http://waterlan.home.xs4all.nl/dos2unix.html>
511 Strona SourceForge: <http://sourceforge.net/projects/dos2unix/>
514 file(1) find(1) iconv(1) locale(1) xargs(1)