Added Cyg-Win

This commit is contained in:
Frank Harris 2026-06-06 18:46:40 -04:00
parent 82cbc206eb
commit 413c315806
10586 changed files with 3806249 additions and 0 deletions

View file

@ -0,0 +1,837 @@
<?xml version="1.0" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>dos2unix 7.5.6 - konwerter formatu plik&#xf3;w tekstowych mi&#x119;dzy systemami DOS/Mac a Uniksem</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<link rev="made" href="mailto:ASSI@walter.nonet" />
</head>
<body>
<ul id="index">
<li><a href="#NAZWA">NAZWA</a></li>
<li><a href="#SK-ADNIA">SK&#x141;ADNIA</a></li>
<li><a href="#OPIS">OPIS</a></li>
<li><a href="#OPCJE">OPCJE</a></li>
<li><a href="#TRYB-MAC">TRYB MAC</a></li>
<li><a href="#TRYBY-KONWERSJI">TRYBY KONWERSJI</a></li>
<li><a href="#UNICODE">UNICODE</a>
<ul>
<li><a href="#Kodowania">Kodowania</a></li>
<li><a href="#Konwersje">Konwersje</a></li>
<li><a href="#Znacznik-BOM">Znacznik BOM</a></li>
<li><a href="#Unikodowe-nazwy-plik-w-w-Windows">Unikodowe nazwy plik&oacute;w w Windows</a></li>
<li><a href="#Przyk-ady-Unicode">Przyk&#x142;ady Unicode</a></li>
</ul>
</li>
<li><a href="#GB18030">GB18030</a></li>
<li><a href="#PRZYK-ADY">PRZYK&#x141;ADY</a></li>
<li><a href="#KONWERSJA-REKURENCYJNA">KONWERSJA REKURENCYJNA</a></li>
<li><a href="#LOKALIZACJA">LOKALIZACJA</a></li>
<li><a href="#WARTO-ZWRACANA">WARTO&#x15A;&#x106; ZWRACANA</a></li>
<li><a href="#STANDARDY">STANDARDY</a></li>
<li><a href="#AUTORZY">AUTORZY</a></li>
<li><a href="#ZOBACZ-TAK-E">ZOBACZ TAK&#x17B;E</a></li>
</ul>
<h1 id="NAZWA">NAZWA</h1>
<p>dos2unix - konwerter formatu plik&oacute;w tekstowych mi&#x119;dzy systemami DOS/Mac a Uniksem</p>
<h1 id="SK-ADNIA">SK&#x141;ADNIA</h1>
<pre><code>dos2unix [opcje] [PLIK ...] [-n PLIK_WEJ PLIK_WYJ ...]
unix2dos [opcje] [PLIK ...] [-n PLIK_WEJ PLIK_WYJ ...]</code></pre>
<h1 id="OPIS">OPIS</h1>
<p>Pakiet dos2unix zawiera narz&#x119;dzia <code>dos2unix</code> oraz <code>unix2dos</code> do konwersji zwyk&#x142;ych plik&oacute;w tekstowych mi&#x119;dzy formatami u&#x17C;ywanymi w systemach DOS lub Mac a formatem uniksowym.</p>
<p>W plikach tekstowych systemu DOS/Windows oznaczenie ko&#x144;ca linii to po&#x142;&#x105;czenie dw&oacute;ch znak&oacute;w: powrotu karetki (CR) i przesuni&#x119;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&#x142; pojedynczym znakiem CR. Obecnie Mac OS wykorzystuje uniksowe ko&#x144;ce linii (LF).</p>
<p>Opr&oacute;cz oznacze&#x144; ko&#x144;c&oacute;w linii dos2unix potrafi konwertowa&#x107; tak&#x17C;e kodowanie plik&oacute;w. Kilko stron kodowych DOS-a mo&#x17C;e by&#x107; przekonwertowanych do uniksowego Latin-1, a windowsowy Unicode (UTF-16) do powszechniejszego pod Uniksem kodowania Unicode UTF-8.</p>
<p>Pliki binarne s&#x105; pomijane automatycznie, chyba &#x17C;e konwersja zostanie wymuszona.</p>
<p>Pliki inne ni&#x17C; zwyk&#x142;e, np. katalogi lub FIFO, s&#x105; pomijane automatycznie.</p>
<p>Dowi&#x105;zania symboliczne i ich cele s&#x105; domy&#x15B;lnie pozostawiane bez zmian. Dowi&#x105;zania symboliczne mog&#x105; by&#x107; opcjonalnie zast&#x119;powane, albo wyj&#x15B;cie mo&#x17C;e by&#x107; zapisywane do celu dowi&#x105;zania. Zapis do celu dowi&#x105;zania symbolicznego nie jest obs&#x142;ugiwane pod Windows.</p>
<p>dos2unix powsta&#x142; na podstawie narz&#x119;dzia dos2unix z systemu SunOS/Solaris. Jest jedna istotna r&oacute;&#x17C;nica w stosunku do oryginalnej wersji z SunOS-a/Solarisa: ta wersja domy&#x15B;lnie wykonuje konwersj&#x119; w miejscu (tryb starego pliku), podczas gdy oryginalna obs&#x142;ugiwa&#x142;a tylko konwersj&#x119; parami (tryb nowego pliku) - p. tak&#x17C;e opcje <code>-o</code> i <code>-n</code>. Ponadto wersja z SunOS-a/Solarisa domy&#x15B;lnie wykonuje konwersj&#x119; w trybie <i>iso</i>, podczas gdy ta wersja domy&#x15B;lnie wykonuje konwersj&#x119; w trybie <i>ascii</i>.</p>
<h1 id="OPCJE">OPCJE</h1>
<dl>
<dt id="pod"><b>--</b></dt>
<dd>
<p>Potraktowanie wszystkich kolejnych opcji jako nazw plik&oacute;w. Tej opcji nale&#x17C;y u&#x17C;y&#x107;, aby przekonwertowa&#x107; pliki, kt&oacute;rych nazwy zaczynaj&#x105; si&#x119; od minusa. Przyk&#x142;adowo, aby przekonwertowa&#x107; plik o nazwie &quot;-foo&quot;, mo&#x17C;na u&#x17C;y&#x107; polecenia:</p>
<pre><code>dos2unix -- -foo</code></pre>
<p>Lub w trybie nowego pliku:</p>
<pre><code>dos2unix -n -- -foo wynik.txt</code></pre>
</dd>
<dt id="allow-chown"><b>--allow-chown</b></dt>
<dd>
<p>Zezwolenie na zmian&#x119; w&#x142;a&#x15B;ciciela w trybie starego pliku.</p>
<p>W przypadku u&#x17C;ycia tej opcji, konwersja nie zostanie przerwana, je&#x15B;li nie ma mo&#x17C;liwo&#x15B;ci zachowania w&#x142;a&#x15B;ciciela i/lub grupy oryginalnego pliku w trybie starego pliku. Konwersja b&#x119;dzie kontynuowana, a przekonwertowany plik b&#x119;dzie mia&#x142; tego samego w&#x142;a&#x15B;ciciela, jakiego by mia&#x142; w trybie nowego pliku. P. tak&#x17C;e opcje <code>-o</code> i <code>-n</code>. Opcja jest dost&#x119;pna tylko wtedy, gdy dos2unix ma obs&#x142;ug&#x119; zachowywania u&#x17C;ytkownika i grupy plik&oacute;w.</p>
</dd>
<dt id="ascii"><b>-ascii</b></dt>
<dd>
<p>Domy&#x15B;lny tryb konwersji. Wi&#x119;cej w sekcji TRYBY KONWERSJI.</p>
</dd>
<dt id="iso"><b>-iso</b></dt>
<dd>
<p>Konwersja mi&#x119;dzy zestawami znak&oacute;w DOS i ISO-8859-1. Wi&#x119;cej w sekcji TRYBY KONWERSJI.</p>
</dd>
<dt id="pod-1252"><b>-1252</b></dt>
<dd>
<p>U&#x17C;ycie strony kodowej Windows 1252 (zachodnioeuropejskiej).</p>
</dd>
<dt id="pod-437"><b>-437</b></dt>
<dd>
<p>U&#x17C;ycie strony kodowej DOS 437 (US). Jest to domy&#x15B;lna strona kodowa u&#x17C;ywana przy konwersji ISO.</p>
</dd>
<dt id="pod-850"><b>-850</b></dt>
<dd>
<p>U&#x17C;ycie strony kodowej DOS 850 (zachodnioeuropejskiej).</p>
</dd>
<dt id="pod-860"><b>-860</b></dt>
<dd>
<p>U&#x17C;ycie strony kodowej DOS 860 (portugalskiej).</p>
</dd>
<dt id="pod-863"><b>-863</b></dt>
<dd>
<p>U&#x17C;ycie strony kodowej DOS 863 (kanadyjskiej francuskiej).</p>
</dd>
<dt id="pod-865"><b>-865</b></dt>
<dd>
<p>U&#x17C;ycie strony kodowej DOS 865 (nordyckiej).</p>
</dd>
<dt id="pod-7"><b>-7</b></dt>
<dd>
<p>Konwersja znak&oacute;w 8-bitowych do przestrzeni 7-bitowej.</p>
</dd>
<dt id="b---keep-bom"><b>-b, --keep-bom</b></dt>
<dd>
<p>Zachowanie znaku BOM (Byte Order Makr). Je&#x17C;eli plik wej&#x15B;ciowy zawiera BOM, powoduje zapisanie go w pliku wyj&#x15B;ciowym. Jest to domy&#x15B;lne zachowanie przy konwersji na DOS-owe ko&#x144;ce linii. P. tak&#x17C;e opcja <code>-r</code>.</p>
</dd>
<dt id="c---convmode-TRYB_KONW"><b>-c, --convmode TRYB_KONW</b></dt>
<dd>
<p>Ustawienie trybu konwersji. TRYB_KONW to jeden z: <i>ascii</i>, <i>7bit</i>, <i>iso</i>, <i>mac</i>, przy czym domy&#x15B;lny jest ascii.</p>
</dd>
<dt id="D---display-enc-KODOWANIE"><b>-D, --display-enc KODOWANIE</b></dt>
<dd>
<p>Ustawienie kodowania wy&#x15B;wietlanego tekstu. KODOWANIE to jedno z: <i>ansi</i>, <i>unicode</i>, <i>unicodebom</i>, <i>utf8</i>, <i>utf8bom</i>, przy czym domy&#x15B;lne to ansi.</p>
<p>Ta opcja jest dost&#x119;pna wy&#x142;&#x105;czenie w programie dos2unix dla Windows z obs&#x142;ug&#x105; nazw plik&oacute;w Unicode. Nie ma wp&#x142;ywu na same nawy odczytywanych i zapisywanych plik&oacute;w, a jedynie na spos&oacute;b ich wy&#x15B;wietlania.</p>
<p>Istnieje kilka sposob&oacute;w wy&#x15B;wietlania tekstu w konsoli Windows w zale&#x17C;no&#x15B;ci od kodowania tekstu. Wszystkie maj&#x105; swoje zalety i wady.</p>
<dl>
<dt id="ansi"><b>ansi</b></dt>
<dd>
<p>Domy&#x15B;lna metoda programu dos2unix to stosowanie tekstu kodowanego w ANSI. Zalet&#x105; jest wsteczna zgodno&#x15B;&#x107;. Dzia&#x142;a z fontami rastrowymi, jak i TrueType. W niekt&oacute;rych rejonach mo&#x17C;e by&#x107; potrzeba zmiany aktywnej strony kodowej DOS OEM na systemow&#x105; stron&#x119; kodow&#x105; Windows ANSI przy u&#x17C;yciu polecenia <code>chcp</code>, poniewa&#x17C; dos2unix wykorzystuje systemow&#x105; stron&#x119; kodow&#x105; Windows.</p>
<p>Wad&#x105; kodowania ansi jest fakt, &#x17C;e mi&#x119;dzynarodowe nazwy plik&oacute;w ze znakami spoza domy&#x15B;lnej systemowej strony kodowej nie s&#x105; wy&#x15B;wietlane w&#x142;a&#x15B;ciwie. Mo&#x17C;na zamiast tego zobaczy&#x107; znak zapytania albo niew&#x142;a&#x15B;ciwy symbol. Je&#x17C;eli nie pracujemy z obcymi nazwami plik&oacute;w, ta metoda jest poprawna.</p>
</dd>
<dt id="unicode-unicodebom"><b>unicode, unicodebom</b></dt>
<dd>
<p>Zalet&#x105; kodowania unicode (windowsow&#x105; nazw&#x105; dla UTF-16) jest (zwykle) w&#x142;a&#x15B;ciwe wy&#x15B;wietlanie tekstu. Nie ma potrzeby zmiany aktywnej strony kodowej. Mo&#x17C;e by&#x107; potrzeba zmiany fontu konsoli na font TrueType, aby znaki mi&#x119;dzynarodowe by&#x142;y wy&#x15B;wietlane poprawnie. Je&#x15B;li znak nie jest obecny w foncie TrueType, zwykle wida&#x107; ma&#x142;y kwadrat, czasami ze znakiem zapytania w &#x15B;rodku.</p>
<p>W przypadku u&#x17C;ywania konsoli ConEmu ca&#x142;y tekst jest wy&#x15B;wietlany poprawnie, poniewa&#x17C; ConEmu automatycznie wybiera dobry font.</p>
<p>Wad&#x105; kodowania unicode jest niezgodno&#x15B;&#x107; z ASCII. Wyj&#x15B;cie nie jest &#x142;atwe do obs&#x142;u&#x17C;enia w przypadku przekierowania do innego programu lub pliku.</p>
<p>W przypadku u&#x17C;ycia metody <code>unicodebom</code>, tekst w unikodzie jest poprzedzony znakiem BOM (Byte Order Mark). BOM jest wymagany do poprawnego przekierowania lub przekazywania przez potok w pow&#x142;oce PowerShell.</p>
</dd>
<dt id="utf8-utf8bom"><b>utf8, utf8bom</b></dt>
<dd>
<p>Zalet&#x105; kodowania utf8 jest zgodno&#x15B;&#x107; z ASCII. Trzeba ustawi&#x107; font konsoli na font TrueType. Przy u&#x17C;yciu fontu TrueType tekst jest wy&#x15B;wietlany podobnie do kodowania <code>unicode</code>.</p>
<p>Wad&#x105; jest fakt, &#x17C;e w przypadku u&#x17C;ywania domy&#x15B;lnego fontu rastrowego, wszystkie znaki spoza ASCII s&#x105; wy&#x15B;wietlane niepoprawnie. Nie tylko unikodowe nazwy plik&oacute;w, ale tak&#x17C;e przet&#x142;umaczone komunikaty staj&#x105; si&#x119; nieczytelne. W Windows skonfigurowanym dla rejonu Azji Wschodniej wida&#x107; du&#x17C;o migotania konsoli w trakcie wy&#x15B;wietlania komunikat&oacute;w.</p>
<p>W konsoli ConEmu metoda kodowania utf8 dzia&#x142;a dobrze.</p>
<p>W przypadku u&#x17C;ycia metody <code>utf8bom</code>, tekst w UTF-8 jest poprzedzony znakiem BOM (Byte Order Mark). BOM jest wymagany do poprawnego przekierowania lub przekazywania przez potok w pow&#x142;oce PowerShell.</p>
</dd>
</dl>
<p>Domy&#x15B;lne kodowanie mo&#x17C;na zmieni&#x107; przy u&#x17C;yciu zmiennej &#x15B;rodowiskowej DOS2UNIX_DISPLAY_ENC, ustawiaj&#x105;c j&#x105; na <code>unicode</code>, <code>unicodebom</code>, <code>utf8</code> lub <code>utf8bom</code>.</p>
</dd>
<dt id="e---add-eol"><b>-e, --add-eol</b></dt>
<dd>
<p>Dodawanie znaku ko&#x144;ca linii do ostatniej linii, je&#x15B;li ta go nie zawiera. Dzia&#x142;a przy ka&#x17C;dej konwersji.</p>
<p>Pliki przekszta&#x142;cone z formatu DOS do Uniksa mog&#x105; nie mie&#x107; w ostatnim wierszu znaku ko&#x144;ca linii. Istniej&#x105; edytory tekstu zapisuj&#x105;ce pliki tekstowe bez znaku ko&#x144;ca wiersza w ostatniej linii. Niekt&oacute;re programy uniksowe maj&#x105; problemy przy przetwarzaniu takich plik&oacute;w, poniewa&#x17C; standard POSIX okre&#x15B;la, &#x17C;e ka&#x17C;dy wiersz pliku tekstowego musi ko&#x144;czy&#x107; si&#x119; znakiem ko&#x144;ca linii. Na przyk&#x142;ad &#x142;&#x105;czenie plik&oacute;w mo&#x17C;e nie da&#x107; oczekiwanego wyniku.</p>
</dd>
<dt id="error-binary"><b>--error-binary</b></dt>
<dd>
<p>Zwr&oacute;cenie b&#x142;&#x119;du, je&#x15B;li pomini&#x119;to plik binarny.</p>
</dd>
<dt id="f---force"><b>-f, --force</b></dt>
<dd>
<p>Wymuszenie konwersji plik&oacute;w binarnych.</p>
</dd>
<dt id="gb---gb18030"><b>-gb, --gb18030</b></dt>
<dd>
<p>Pod Windows pliki w UTF-16 s&#x105; domy&#x15B;lnie konwertowane do UTF-8, niezale&#x17C;nie od ustawienia lokalizacji. Ta opcja pozwala przekonwertowa&#x107; pliki w UTF-16 do GB18030. Opcja jest dost&#x119;pna tylko pod Windows, wi&#x119;cej w sekcji dotycz&#x105;cej GB18030.</p>
</dd>
<dt id="h---help"><b>-h, --help</b></dt>
<dd>
<p>Wy&#x15B;wietlenie opisu i zako&#x144;czenie.</p>
</dd>
<dt id="i-FLAGI---info-FLAGI-PLIK"><b>-i[FLAGI], --info[=FLAGI] PLIK ...</b></dt>
<dd>
<p>Wy&#x15B;wietlenie informacji o pliku. Konwersja nie jest wykonywana.</p>
<p>Wypisywane s&#x105; nast&#x119;puj&#x105;ce informacje, w tej kolejno&#x15B;ci: liczba DOS-owych ko&#x144;c&oacute;w linii, liczba uniksowych ko&#x144;c&oacute;w linii, liczba macowych ko&#x144;c&oacute;w linii, znacznik BOM, tekstowy lub binarny, nazwa pliku.</p>
<p>Przyk&#x142;adowe wyj&#x15B;cie:</p>
<pre><code> 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 binary dos2unix.exe</code></pre>
<p>Uwaga: czasami plik binarny mo&#x17C;e by&#x107; b&#x142;&#x119;dnie rozpoznany jako tekstowy. P. tak&#x17C;e opcja <code>-s</code>.</p>
<p>Je&#x15B;li dodatkowo u&#x17C;yta jest opcja <code>-e</code> lub <code>--add-eol</code>, wypisywany jest tak&#x17C;e rodzaj ko&#x144;ca linii z ostatniej linii, lub <code>noeol</code>, je&#x15B;li nie ma &#x17C;adnego.</p>
<p>Przyk&#x142;adowe wyj&#x15B;cie:</p>
<pre><code> 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
Opcjonalnie mo&#x17C;na ustawi&#x107; dodatkowe flagi, aby zmieni&#x107; wyj&#x15B;cie. Mo&#x17C;na doda&#x107; jedn&#x105; lub wi&#x119;cej flag.</code></pre>
<dl>
<dt id="pod0"><b>0</b></dt>
<dd>
<p>Wypisanie wierszy informacji o pliku zako&#x144;czonych znakiem NUL zamiast znaku nowej linii. Pozwala to na poprawn&#x105; interpretacj&#x119; nazw plik&oacute;w zawieraj&#x105;cych spacje lub cudzys&#x142;owy w przypadku u&#x17C;ycia flagi c. Flagi nale&#x17C;y u&#x17C;ywa&#x107; w po&#x142;&#x105;czeniu z opcj&#x105; <code>-0</code> lub <code>--null</code> programu xargs(1).</p>
</dd>
<dt id="d"><b>d</b></dt>
<dd>
<p>Wypisanie liczby DOS-owych ko&#x144;c&oacute;w linii.</p>
</dd>
<dt id="u"><b>u</b></dt>
<dd>
<p>Wypisanie liczby uniksowych ko&#x144;c&oacute;w linii.</p>
</dd>
<dt id="m"><b>m</b></dt>
<dd>
<p>Wypisanie liczby macowych ko&#x144;c&oacute;w linii.</p>
</dd>
<dt id="b"><b>b</b></dt>
<dd>
<p>Wypisanie znacznika BOM.</p>
</dd>
<dt id="t"><b>t</b></dt>
<dd>
<p>Wypisanie, czy plik jest tekstowy, czy binarny.</p>
</dd>
<dt id="e"><b>e</b></dt>
<dd>
<p>Wypisanie rodzaju ko&#x144;ca wiersza w ostatnim wierszu, lub <code>noeol</code>, je&#x15B;li nie ma &#x17C;adnego.</p>
</dd>
<dt id="c"><b>c</b></dt>
<dd>
<p>Wypisanie tylko plik&oacute;w, kt&oacute;re zosta&#x142;yby przekonwertowane.</p>
<p>Z flag&#x105; <code>c</code> dos2unix wypisze tylko pliki zawieraj&#x105;ce DOS-owe ko&#x144;ce linii, a unix2dos wypisze tylko nazwy plik&oacute;w zawieraj&#x105;cych uniksowe ko&#x144;ce linii.</p>
<p>Je&#x15B;li dodatkowo u&#x17C;yta jest opcja <code>-e</code> lub <code>--add-eol</code>, wypisywane s&#x105; tak&#x17C;e pliki bez zako&#x144;czenia ostatniej linii.</p>
</dd>
<dt id="h"><b>h</b></dt>
<dd>
<p>Wypisanie nag&#x142;&oacute;wka.</p>
</dd>
<dt id="p"><b>p</b></dt>
<dd>
<p>Wy&#x15B;wietlanie nazw plik&oacute;w bez &#x15B;cie&#x17C;ki.</p>
</dd>
</dl>
<p>Przyk&#x142;ady:</p>
<p>Pokazanie informacji o wszystkich plikach *.txt:</p>
<pre><code>dos2unix -i *.txt</code></pre>
<p>Pokazanie tylko liczby DOS-owych i uniksowych ko&#x144;c&oacute;w linii:</p>
<pre><code>dos2unix -idu *.txt</code></pre>
<p>Pokazanie tylko znacznika BOM:</p>
<pre><code>dos2unix --info=b *.txt</code></pre>
<p>Wypisanie listy plik&oacute;w zawieraj&#x105;cych DOS-owe ko&#x144;ce linii:</p>
<pre><code>dos2unix -ic *.txt</code></pre>
<p>Wypisanie listy plik&oacute;w zawieraj&#x105;cych uniksowe ko&#x144;ce linii:</p>
<pre><code>unix2dos -ic *.txt</code></pre>
<p>Wypisanie listy plik&oacute;w zawieraj&#x105;cych DOS-owe ko&#x144;ce linii lub bez znaku ko&#x144;ca w ostatniej linii:</p>
<pre><code>dos2unix -e -ic *.txt</code></pre>
<p>Konwersja tylko plik&oacute;w maj&#x105;cych DOS-owe ko&#x144;ce linii, pozostawienie pozosta&#x142;ych bez zmian:</p>
<pre><code>dos2unix -ic0 *.txt | xargs -0 dos2unix</code></pre>
<p>Wyszukanie plik&oacute;w tekstowych zawieraj&#x105;cych DOS-owe ko&#x144;ce linii:</p>
<pre><code>find -name &#39;*.txt&#39; -print0 | xargs -0 dos2unix -ic</code></pre>
</dd>
<dt id="k---keepdate"><b>-k, --keepdate</b></dt>
<dd>
<p>Zachowanie znacznika czasu pliku wyj&#x15B;ciowego takiego samego, jak pliku wej&#x15B;ciowego.</p>
</dd>
<dt id="L---license"><b>-L, --license</b></dt>
<dd>
<p>Wy&#x15B;wietlenie licencji programu.</p>
</dd>
<dt id="l---newline"><b>-l, --newline</b></dt>
<dd>
<p>Dodanie dodatkowego znaku ko&#x144;ca linii.</p>
<p><b>dos2unix</b>: tylko DOS-owe znaki ko&#x144;ca linii s&#x105; zamieniane na dwa uniksowe. W trybie Mac tylko macowe znaki ko&#x144;ca linii s&#x105; zamieniane na dwa uniksowe.</p>
<p><b>unix2dos</b>: tylko uniksowe znaki ko&#x144;ca linii s&#x105; zamieniane na dwa DOS-owe. W trybie Mac uniksowe znaki ko&#x144;ca linii s&#x105; zamieniane na dwa macowe.</p>
</dd>
<dt id="m---add-bom"><b>-m, --add-bom</b></dt>
<dd>
<p>Zapisanie znacznika BOM (Byte Order Mark) w pliku wyj&#x15B;ciowym. Domy&#x15B;lnie zapisywany jest BOM UTF-8.</p>
<p>Je&#x15B;li plik wej&#x15B;ciowy jest w kodowaniu UTF-16 i u&#x17C;yto opcji <code>-u</code>, zostanie zapisany BOM UTF-16.</p>
<p>Nigdy nie nale&#x17C;y u&#x17C;ywa&#x107; tej opcji, je&#x15B;li kodowanie wyj&#x15B;ciowe jest inne ni&#x17C; UTF-8, UTF-16 lub GB18030. Wi&#x119;cej w sekcji UNICODE.</p>
</dd>
<dt id="n---newfile-PLIK_WEJ-PLIK_WYJ"><b>-n, --newfile PLIK_WEJ PLIK_WYJ ...</b></dt>
<dd>
<p>Tryb nowego pliku. Konwersja PLIKU_WEJ z zapisem wyj&#x15B;cia do PLIKU_WYJ. Nazwy plik&oacute;w musz&#x105; by&#x107; podane parami, a masek <i>nie</i> nale&#x17C;y u&#x17C;ywa&#x107;, gdy&#x17C; <i>spowoduje</i> to utrat&#x119; plik&oacute;w.</p>
<p>Osoba uruchamiaj&#x105;ca konwersj&#x119; w trybie nowego pliku (par) b&#x119;dzie w&#x142;a&#x15B;cicielem przekonwertowanego pliku. Prawa odczytu/zapisu nowego pliku b&#x119;d&#x105; pochodzi&#x142;y z praw pliku oryginalnego po odj&#x119;ciu umask(1) osoby uruchamiaj&#x105;cej konwersj&#x119;.</p>
</dd>
<dt id="no-allow-chown"><b>--no-allow-chown</b></dt>
<dd>
<p>Bez zezwolenia na zmian&#x119; w&#x142;a&#x15B;ciciela pliku w trybie starego pliku (domy&#x15B;lne).</p>
<p>Przerwanie konwersji, je&#x17C;eli u&#x17C;ytkownik lub grupa oryginalnego pliku nie mo&#x17C;e by&#x107; zachowana w trybie starego pliku. P. tak&#x17C;e opcje <code>-o</code> oraz <code>-n</code>. Ta opcja jest dost&#x119;pna tylko je&#x15B;li dos2unix ma obs&#x142;ug&#x119; zachowywania u&#x17C;ytkownika i grupy plik&oacute;w.</p>
</dd>
<dt id="no-add-eol"><b>--no-add-eol</b></dt>
<dd>
<p>Bez dodawania znaku ko&#x144;ca linii do ostatniego wiersza, je&#x15B;li ten go nie zawiera (domy&#x15B;lne).</p>
</dd>
<dt id="no-error-binary"><b>--no-error-binary</b></dt>
<dd>
<p>Bez zwracania b&#x142;&#x119;du, je&#x15B;li pomini&#x119;to plik binarny (domy&#x15B;lne).</p>
</dd>
<dt id="O---to-stdout"><b>-O, --to-stdout</b></dt>
<dd>
<p>Zapis na standardowe wyj&#x15B;cie, jak filtr uniksowy. Opcja <code>-o</code> przywr&oacute;ci tryb starego pliku (zamian&#x119; z miejscu).</p>
<p>W po&#x142;&#x105;czeniu z opcj&#x105; <code>-e</code> pliki mog&#x105; by&#x107; w&#x142;a&#x15B;ciwie &#x142;&#x105;czone - bez po&#x142;&#x105;czonych ostatnich i pierwszych linii oraz znak&oacute;w unikodowych BOM w &#x15B;rodku po&#x142;&#x105;czonego pliku. Przyk&#x142;ad:</p>
<pre><code>dos2unix -e -O plik1.txt plik2.txt &gt; wynik.txt</code></pre>
</dd>
<dt id="o---oldfile-PLIK"><b>-o, --oldfile PLIK ...</b></dt>
<dd>
<p>Tryb starego pliku. Konwersja PLIKU i nadpisanie go wyj&#x15B;ciem. Program dzia&#x142;a domy&#x15B;lnie w tym trybie. Mo&#x17C;na u&#x17C;ywa&#x107; masek.</p>
<p>W trybie starego pliku (w miejscu) przekonwertowany plik otrzymuje tego samego w&#x142;a&#x15B;ciciela, grup&#x119; oraz prawa odczytu/zapisu, jak plik oryginalny - tak&#x17C;e wtedy, gdy plik jest konwertowany przez innego u&#x17C;ytkownika, maj&#x105;cego prawo zapisu do pliku (np. przez u&#x17C;ytkownika root). Konwersja zostanie przerwana, je&#x15B;li nie b&#x119;dzie mo&#x17C;liwe zachowanie oryginalnych warto&#x15B;ci. Zmiana w&#x142;a&#x15B;ciciela mog&#x142;aby oznacza&#x107;, &#x17C;e pierwotny w&#x142;a&#x15B;ciciel nie mo&#x17C;e ju&#x17C; odczyta&#x107; pliku. Zmiana grupy mog&#x142;aby by&#x107; zagro&#x17C;eniem bezpiecze&#x144;stwa, plik m&oacute;g&#x142;by by&#x107; czytelny dla niezamierzonych os&oacute;b. Zachowanie w&#x142;a&#x15B;ciciela, grupy i praw odczytu/zapisu jest obs&#x142;ugiwane tylko na Uniksie.</p>
<p>Aby sprawdzi&#x107;, czy doswunix ma obs&#x142;ug&#x119; zachowywania u&#x17C;ytkownika i grupy plik&oacute;w, mo&#x17C;na napisa&#x107; <code>dos2unix -V</code>.</p>
<p>Konwersja jest wykonywana zawsze przy u&#x17C;yciu pliku tymczasowego. Je&#x15B;li w trakcie konwersji wyst&#x105;pi b&#x142;&#x105;d, plik tymczasowy jest usuwany, a plik oryginalny pozostaje nietkni&#x119;ty. Je&#x15B;li konwersja si&#x119; powiedzie, plik oryginalny jest zast&#x119;powany plikiem tymczasowym. Mo&#x17C;na mie&#x107; prawa zapisu do pliku oryginalnego, ale brak uprawnie&#x144;, aby nada&#x107; tego samego w&#x142;a&#x15B;ciciela i/lub grup&#x119;, co plik oryginalny, plikowi tymczasowemu. Oznacza to, &#x17C;e nie mo&#x17C;na zachowa&#x107; u&#x17C;ytkownika i/lub grupy oryginalnego pliku. W takim przypadku mo&#x17C;na u&#x17C;y&#x107; opcji <code>--allow-chown</code>, aby kontynuowa&#x107; konwersj&#x119;:</p>
<pre><code>dos2unix --allow-chown foo.txt</code></pre>
<p>Inny spos&oacute;b to u&#x17C;ycie trybu nowego pliku:</p>
<pre><code>dos2unix -n foo.txt foo.txt</code></pre>
<p>Zalet&#x105; opcji <code>--allow-chown</code> jest mo&#x17C;liwo&#x15B;&#x107; u&#x17C;ycia masek oraz zachowanie w&#x142;a&#x15B;ciciela w miar&#x119; mo&#x17C;liwo&#x15B;ci.</p>
</dd>
<dt id="q---quiet"><b>-q, --quiet</b></dt>
<dd>
<p>Tryb cichy. Pomini&#x119;cie wszystkich ostrze&#x17C;e&#x144; i komunikat&oacute;w. Zwracanym kodem jest zero, chyba &#x17C;e podano b&#x142;&#x119;dne opcje linii polece&#x144;.</p>
</dd>
<dt id="r---remove-bom"><b>-r, --remove-bom</b></dt>
<dd>
<p>Usuni&#x119;cie znak&oacute;w BOM (Byte Order Mark). Bez zapisywania BOM do pliku wyj&#x15B;ciowego. Jest to domy&#x15B;lne zachowanie przy konwersji na uniksowe ko&#x144;ce linii. P. tak&#x17C;e opcja <code>-b</code>.</p>
</dd>
<dt id="s---safe"><b>-s, --safe</b></dt>
<dd>
<p>Pomini&#x119;cie plik&oacute;w binarnych (domy&#x15B;lne).</p>
<p>Pomijanie plik&oacute;w binarnych ma na celu zapobie&#x17C;enie przypadkowym b&#x142;&#x119;dom. Uwaga: wykrywanie plik&oacute;w binarnych nie jest w 100% odporne na b&#x142;&#x119;dy. Pliki wej&#x15B;ciowe s&#x105; przeszukiwane pod k&#x105;tem symboli binarnych, kt&oacute;re zwykle nie wyst&#x119;puj&#x105; w plikach tekstowych. Mo&#x17C;e si&#x119; zdarzy&#x107;, &#x17C;e plik binarny zawiera tylko zwyk&#x142;e znaki tekstowe. Taki plik binarny b&#x119;dzie b&#x142;&#x119;dnie widziany jako plik tekstowy.</p>
<p>Domy&#x15B;lnie nie jest zwacany b&#x142;&#x105;d, kiedy zostaje pomini&#x119;ty plik binarny. Je&#x15B;li u&#x17C;yta zostanie opcja <code>--error-binary</code>, b&#x142;&#x105;d jest zwracany.</p>
</dd>
<dt id="u---keep-utf16"><b>-u, --keep-utf16</b></dt>
<dd>
<p>Zachowanie oryginalnego kodowania pliku wej&#x15B;ciowego UTF-16. Plik wyj&#x15B;ciowy zostanie zapisany w tym samym kodowaniu UTF-16 (little- lub big-endian), co plik wej&#x15B;ciowy. Zapobiega to przekszta&#x142;ceniu do UTF-8. Do pliku zostanie zapisany odpowiedni znacznik BOM UTF-16. T&#x119; opcj&#x119; mo&#x17C;na wy&#x142;&#x105;czy&#x107; opcj&#x105; <code>-ascii</code>.</p>
</dd>
<dt id="ul---assume-utf16le"><b>-ul, --assume-utf16le</b></dt>
<dd>
<p>Przyj&#x119;cie, &#x17C;e format pliku wej&#x15B;ciowego to UTF-16LE.</p>
<p>Je&#x15B;li w pliku wej&#x15B;ciowym jest znacznik BOM (Byte Order Mark), ma on priorytet nad t&#x105; opcj&#x105;.</p>
<p>Je&#x15B;li przyj&#x119;to b&#x142;&#x119;dne za&#x142;o&#x17C;enie (plik wej&#x15B;ciowy nie jest w formacie UTF-16LE), a konwersja si&#x119; uda, wynikiem b&#x119;dzie plik wyj&#x15B;ciowy UTF-8 ze z&#x142;ym tekstem. Konwersj&#x119; t&#x119; mo&#x17C;na odwr&oacute;ci&#x107; przy u&#x17C;yciu polecenia iconv(1) do konwersji wyj&#x15B;cia UTF-8 z powrotem do UTF-16LE. Przywr&oacute;ci to plik oryginalny.</p>
<p>Przyj&#x119;cie UTF-16LE dzia&#x142;a jako <i>tryb konwersji</i>. Przy prze&#x142;&#x105;czeniu na domy&#x15B;lny tryb <i>ascii</i> przyj&#x119;cie UTF-16LE jest wy&#x142;&#x105;czane.</p>
</dd>
<dt id="ub---assume-utf16be"><b>-ub, --assume-utf16be</b></dt>
<dd>
<p>Przyj&#x119;cie, &#x17C;e format pliku wej&#x15B;ciowego to UTF-16BE.</p>
<p>Ta opcja dzia&#x142;a analogicznie do <code>-ul</code>.</p>
</dd>
<dt id="v---verbose"><b>-v, --verbose</b></dt>
<dd>
<p>Wy&#x15B;wietlanie szczeg&oacute;&#x142;owych komunikat&oacute;w. Wy&#x15B;wietlane &#x15B;a dodatkowe informacje o znacznikach BOM (Byte Order Mark) oraz liczbie przekonwertowanych ko&#x144;c&oacute;w linii.</p>
</dd>
<dt id="F---follow-symlink"><b>-F, --follow-symlink</b></dt>
<dd>
<p>Pod&#x105;&#x17C;anie za dowi&#x105;zaniami symbolicznymi i konwertowanie ich cel&oacute;w</p>
</dd>
<dt id="R---replace-symlink"><b>-R, --replace-symlink</b></dt>
<dd>
<p>Zast&#x119;powanie dowi&#x105;za&#x144; symbolicznych przekonwertowanymi plikami (oryginalne pliki docelowe pozostaj&#x105; bez zmian).</p>
</dd>
<dt id="S---skip-symlink"><b>-S, --skip-symlink</b></dt>
<dd>
<p>Pozostawienie dowi&#x105;za&#x144; symbolicznych i cel&oacute;w bez zmian (domy&#x15B;lne).</p>
</dd>
<dt id="V---version"><b>-V, --version</b></dt>
<dd>
<p>Wy&#x15B;wietlenie informacji o wersji i zako&#x144;czenie.</p>
</dd>
</dl>
<h1 id="TRYB-MAC">TRYB MAC</h1>
<p>Domy&#x15B;lnie znaki ko&#x144;ca linii s&#x105; konwertowane z DOS-a do Uniksa i odwrotnie. Znaki ko&#x144;ca linii systemu Mac nie s&#x105; konwertowane.</p>
<p>W trybie Mac znaki ko&#x144;ca linii s&#x105; konwertowane z formatu Maca do Uniksa i odwrotnie. Znaki ko&#x144;ca linii systemu DOS nie s&#x105; zmieniane.</p>
<p>Aby uruchomi&#x107; program w trybie Mac, nale&#x17C;y u&#x17C;y&#x107; opcji linii polece&#x144; <code>-c mac</code> albo u&#x17C;y&#x107; polece&#x144; <code>mac2unix</code> lub <code>unix2mac</code>.</p>
<h1 id="TRYBY-KONWERSJI">TRYBY KONWERSJI</h1>
<dl>
<dt id="ascii1"><b>ascii</b></dt>
<dd>
<p>To jest domy&#x15B;lny tryb konwersji. S&#x142;u&#x17C;y do konwersji plik&oacute;w kodowanych ASCII lub zgodnie z ASCII, np. UTF-8. W&#x142;&#x105;czenie trybu <b>ascii</b> wy&#x142;&#x105;cza tryby <b>7bit</b> i <b>iso</b>.</p>
<p>Je&#x15B;li dos2unix ma obs&#x142;ug&#x119; UTF-16, pliki kodowane UTF-16 s&#x105; konwertowane do bie&#x17C;&#x105;cego kodowania w systamach zgodnych z POSIX lub do UTF-8 na Windows. W&#x142;&#x105;czenie trybu <b>ascii</b> wy&#x142;&#x105;cza opcj&#x119; zachowywania kodowania UTF-16 (<code>-u</code>) oraz opcje zak&#x142;adaj&#x105;ce wej&#x15B;cie UTF-16 (<code>-ul</code> oraz <code>-ub</code>). Aby sprawdzi&#x107;, czy dos2unix ma obs&#x142;ug&#x119; UTF-16, mo&#x17C;na wywo&#x142;a&#x107; <code>dos2unix -V</code>. Wi&#x119;cej w sekcji UNICODE.</p>
</dd>
<dt id="bit"><b>7bit</b></dt>
<dd>
<p>W tym trybie wszystkie znaki 8-bitowe spoza ASCII (o warto&#x15B;ciach od 128 do 255) s&#x105; konwertowane do przestrzeni 7-bitowej.</p>
</dd>
<dt id="iso1"><b>iso</b></dt>
<dd>
<p>W tym trybie znaki s&#x105; konwertowane mi&#x119;dzy zestawem znak&oacute;w DOS (stron&#x105; kodow&#x105;) a zestawem znak&oacute;w ISO-8859-1 (Latin-1) u&#x17C;ywanym na Uniksie. Znaki DOS-owe niemaj&#x105;ce odpowiednika w ISO-8859-1, kt&oacute;rych nie da si&#x119; przekonwertowa&#x107;, s&#x105; zamieniane na kropk&#x119;. To samo dotyczy znak&oacute;w ISO-8859-1 bez odpowiednika w DOS-ie.</p>
<p>Je&#x15B;li u&#x17C;ywana jest tylko opcja <code>-iso</code>, dos2unix pr&oacute;buje wykry&#x107; aktywn&#x105; stron&#x119; kodow&#x105;. Je&#x15B;li nie jest to mo&#x17C;liwe, dos2unix u&#x17C;ywa domy&#x15B;lnej strony kodowej CP437, stosowanej g&#x142;&oacute;wnie w USA. Aby wymusi&#x107; okre&#x15B;lon&#x105; stron&#x119; kodow&#x105;, nale&#x17C;y u&#x17C;y&#x107; opcji <code>-437</code> (US), <code>-850</code> (zachodnioeuropejska), <code>-860</code> (portugalska), <code>-863</code> (kanadyjska francuska) lub <code>-865</code> (nordycka). Ponadto obs&#x142;ugiwana jest strona kodowa Windows CP1252 (zachodnioeuropejska) przy u&#x17C;yciu opcji <code>-1252</code>. W przypadku innych stron kodowych mo&#x17C;na u&#x17C;y&#x107; narz&#x119;dzia dos2unix wraz z iconv(1). Iconv potrafi konwertowa&#x107; mi&#x119;dzy wieloma kodowaniami znak&oacute;w.</p>
<p>Nigdy nie nale&#x17C;y u&#x17C;ywa&#x107; konwersji ISO na plikach tekstowych w Unicode. Uszkodzi&#x142;aby pliki kodowane UTF-8.</p>
<p>Kilka przyk&#x142;ad&oacute;w:</p>
<p>Konwersja z domy&#x15B;lnej strony kodowej DOS do uniksowego Latin-1:</p>
<pre><code>dos2unix -iso -n wej&#x15B;cie.txt wynik.txt</code></pre>
<p>Konwersja ze strony kodowej DOS CP850 do uniksowego Latin-1:</p>
<pre><code>dos2unix -850 -n wej&#x15B;cie.txt wynik.txt</code></pre>
<p>Konwersja ze strony kodowej Windows CP1252 do uniksowego Latin-1:</p>
<pre><code>dos2unix -1252 -n wej&#x15B;cie.txt wynik.txt</code></pre>
<p>Konwersja ze strony kodowej Windows CP1252 do uniksowego UTF-8 (Unicode):</p>
<pre><code>iconv -f CP1252 -t UTF-8 wej&#x15B;cie.txt | dos2unix &gt; wynik.txt</code></pre>
<p>Konwersa z uniksowego Latin-1 do domy&#x15B;lnej strony kodowej DOS:</p>
<pre><code>unix2dos -iso -n wej&#x15B;cie.txt wynik.txt</code></pre>
<p>Konwersja z uniksowego Latin-1 do strony kodowej DOS CP850:</p>
<pre><code>unix2dos -850 -n wej&#x15B;cie.txt wynik.txt</code></pre>
<p>Konwersja z uniksowego Latin-1 do strony kodowej Windows CP1252:</p>
<pre><code>unix2dos -1252 -n wej&#x15B;cie.txt wynik.txt</code></pre>
<p>Konwersja z uniksowego UTF-8 (Unicode) do strony kodowej Windows CP1252:</p>
<pre><code>unix2dos &lt; wej&#x15B;cie.txt | iconv -f UTF-8 -t CP1252 &gt; wynik.txt</code></pre>
<p>Wi&#x119;cej pod adresem <a href="https://czyborra.com/charsets/codepages.html">https://czyborra.com/charsets/codepages.html</a> oraz <a href="https://czyborra.com/charsets/iso8859.html">https://czyborra.com/charsets/iso8859.html</a>.</p>
</dd>
</dl>
<h1 id="UNICODE">UNICODE</h1>
<h2 id="Kodowania">Kodowania</h2>
<p>Istniej&#x105; r&oacute;&#x17C;ne kodowania Unicode. Pod Uniksem i Linuksem pliki Unicode s&#x105; zwykle kodowane z u&#x17C;yciem UTF-8. Pod Windows pliki tekstowe Unicode mog&#x105; by&#x107; kodowane w UTF-8, UTF-16, UTF-16 big-endian, ale przewa&#x17C;nie s&#x105; kodowane w UTF-16.</p>
<h2 id="Konwersje">Konwersje</h2>
<p>Pliki tekstowe Unicode mog&#x105; mie&#x107; znaki ko&#x144;ca linii systemu DOS, Unix lub Mac, podobnie jak pliki tekstowe ASCII.</p>
<p>Wszystkie wersje dos2unix i unix2dos potrafi&#x105; konwertowa&#x107; pliki kodowane UTF-8, poniewa&#x17C; UTF-8 jest wstecznie zgodne z ASCII.</p>
<p>dos2unix i unix2dos z obs&#x142;ug&#x105; Unicode UTF-16 potrafi&#x105; odczytywa&#x107; pliki tekstowe kodowane UTF-16 little- oraz big-endian. Aby sprawdzi&#x107;, czy dos2unix zosta&#x142; zbudowany z obs&#x142;ug&#x105; UTF-16, nale&#x17C;y napisa&#x107; <code>dos2unix -V</code>.</p>
<p>Pod Uniksem/Linuksem pliki w kodowaniu UTF-16 s&#x105; konwertowane do kodowania znak&oacute;w ustawionej lokalizacji. Kodowanie znak&oacute;w dla lokalizacji mo&#x17C;na sprawdzi&#x107; poleceniem locale(1). Je&#x15B;li konwersja nie jest mo&#x17C;liwa, wyst&#x105;pi b&#x142;&#x105;d, a plik zostanie pomini&#x119;ty.</p>
<p>Pod Windows pliki UTF-16 s&#x105; domy&#x15B;lnie konwertowane do UTF-8. Pliki tekstkowe w kodowaniu UTF-8 s&#x105; dobrze obs&#x142;ugiwane zar&oacute;wno pod Windows, jak i Uniksem/Linuksem.</p>
<p>Kodowania UTF-16 i UTF-8 s&#x105; w pe&#x142;ni zgodne, konwersja nie spowoduje utraty &#x17C;adnej cz&#x119;&#x15B;ci tekstu. W przypadku wyst&#x105;pienia b&#x142;&#x119;du konwersji, na przyk&#x142;ad w przypadku b&#x142;&#x119;du w pliku wej&#x15B;ciowym UTF-16, plik zostanie pomini&#x119;ty.</p>
<p>W przypadku u&#x17C;ycia opcji <code>-u</code>, plik wej&#x15B;ciowy zostanie zapisany w tym samym kodowaniu UTF-16, co plik wej&#x15B;ciowy. Opcja <code>-u</code> zapobiega konwersji do UTF-8.</p>
<p>dos2unix oraz unix2dos nie maj&#x105; opcji pozwalaj&#x105;cej na konwersj&#x119; plik&oacute;w UTF-8 do UTF-16.</p>
<p>Tryby konwersji ISO i 7-bit nie dzia&#x142;aj&#x105; na plikach UTF-16.</p>
<h2 id="Znacznik-BOM">Znacznik BOM</h2>
<p>W systemie Windows pliki tekstowe zwykle zawieraj&#x105; znacznik BOM (Byte Order Mark), poniewa&#x17C; wiele program&oacute;w dla Windows (w tym Notepad) dodaje domy&#x15B;lnie znaczniki BOM. Wi&#x119;cej informacji mo&#x17C;na znale&#x17A;&#x107; pod adresem <a href="https://pl.wikipedia.org/wiki/BOM_(informatyka)">https://pl.wikipedia.org/wiki/BOM_(informatyka)</a>.</p>
<p>Pod Uniksem pliki Unicode zwykle nie maj&#x105; znacznika BOM. Pliki tekstowe s&#x105; traktowane jako kodowane zgodnie z kodowaniem znak&oacute;w ustawionej lokalizacji.</p>
<p>dos2unix potrafi wykry&#x107; tylko, czy plik jest w formacie UTF-16, je&#x15B;li zawiera znacznik BOM. Je&#x15B;li plik UTF-16 nie ma tego znacznika, dos2unix potraktuje plik jako binarny.</p>
<p>Do konwersji pliku UTF-16 bez znacznika BOM mo&#x17C;na u&#x17C;y&#x107; opcji <code>-ul</code> lub <code>-ub</code>.</p>
<p>dos2unix nie zapisuje domy&#x15B;lnie znaku BOM w pliku wyj&#x15B;ciowym. Z opcj&#x105; <code>-b</code> dos2unix zapisuje BOM, je&#x15B;li plik wej&#x15B;ciowy zawiera BOM.</p>
<p>unix2dos domy&#x15B;lnie zapisuje znaczniki BOM w pliku wyj&#x15B;ciowym, je&#x15B;li plik wej&#x15B;ciowy ma BOM. Aby usun&#x105;&#x107; BOM, mo&#x17C;na u&#x17C;y&#x107; opcji <code>-r</code>.</p>
<p>dos2unix oraz unix2dos zawsze zapisuj&#x105; znaczniki BOM, je&#x15B;li u&#x17C;yta zostanie opcja <code>-m</code>.</p>
<h2 id="Unikodowe-nazwy-plik-w-w-Windows">Unikodowe nazwy plik&oacute;w w Windows</h2>
<p>dos2unix ma opcjonaln&#x105; obs&#x142;ug&#x119; odczytu i zapisu nazw plik&oacute;w Unicode w linii polece&#x144; Windows. Oznacza to, &#x17C;e dos2unix potrafi otwiera&#x107; pliki zawieraj&#x105;ce w nazwie znaki spoza domy&#x15B;lnej systemowej strony kodowej ANSI. Aby sprawdzi&#x107;, czy dos2unix dla Windows zosta&#x142; zbudowany z obs&#x142;ug&#x105; nazw plik&oacute;w Unicode, mo&#x17C;na wpisa&#x107; <code>dos2unix -V</code>.</p>
<p>Przy wy&#x15B;wietlaniu nazw plik&oacute;w Unicode w konsoli Windows wyst&#x119;puje kilka problem&oacute;w. Wi&#x119;cej informacji w opisie opcji <code>-D</code>, <code>--display-enc</code>. Nazwy plik&oacute;w mog&#x105; by&#x107; wy&#x15B;wietlane b&#x142;&#x119;dnie na konsoli, ale pliki b&#x119;d&#x105; zapisywane z poprawn&#x105; nazw&#x105;.</p>
<h2 id="Przyk-ady-Unicode">Przyk&#x142;ady Unicode</h2>
<p>Konwersja pliku UTF-16 (z BOM) z formatu Windows do uniksowego UTF-8:</p>
<pre><code>dos2unix -n wej&#x15B;cie.txt wynik.txt</code></pre>
<p>Konwersja pliku UTF-16LE (bez BOM) z formatu Windows do uniksowego UTF-8:</p>
<pre><code>dos2unix -ul -n wej&#x15B;cie.txt wynik.txt</code></pre>
<p>Konwersja z uniksowego UTF-8 do UTF-8 z BOM dla Windows:</p>
<pre><code>unix2dos -m -n wej&#x15B;cie.txt wynik.txt</code></pre>
<p>Konwersja z uniksowego UTF-8 do UTF-16 dla Windows:</p>
<pre><code>unix2dos &lt; wej&#x15B;cie.txt | iconv -f UTF-8 -t UTF-16 &gt; wynik.txt</code></pre>
<h1 id="GB18030">GB18030</h1>
<p>GB18030 to standard urz&#x119;dowy w Chinach. Obowi&#x105;zkowy podzbi&oacute;r standardu GB18030 jest oficjalnym wymaganiem ka&#x17C;dego oprogramowania sprzedawanego w Chinach. Wi&#x119;cej pod adresem <a href="https://en.wikipedia.org/wiki/GB_18030">https://en.wikipedia.org/wiki/GB_18030</a>.</p>
<p>GB18030 jest w pe&#x142;ni zgodny z Unicode i mo&#x17C;e by&#x107; uwa&#x17C;any za format transformacji unikodu. Podobnie jak UTF-8, GB18030 jest zgodny z ASCII. Jest tak&#x17C;e zgodny ze stron&#x105; kodow&#x105; Windows 936, znan&#x105; te&#x17C; jako GBK.</p>
<p>Pod Uniksem/Linuksem pliki UTF-16 s&#x105; konwertowane do GB18030, je&#x15B;li kodowanie dla lokalizacji jest ustawione na GB18030. Uwaga: b&#x119;dzie to dzia&#x142;a&#x107; tylko, je&#x15B;li lokalizacja jest obs&#x142;ugiwana przez system. List&#x119; obs&#x142;ugiwanych lokalizacji mo&#x17C;na sprawdzi&#x107; poleceniem <code>locale -a</code>.</p>
<p>Pod Windows w celu konwersji plik&oacute;w UTF-16 do GB18030 nale&#x17C;y u&#x17C;y&#x107; opcji <code>-gb</code>.</p>
<p>Pliki w kodowaniu GB18030 mog&#x105; mie&#x107; znacznik BOM, podobnie jak pliki w Unicode.</p>
<h1 id="PRZYK-ADY">PRZYK&#x141;ADY</h1>
<p>Odczyt ze standardowego wej&#x15B;cia i zapis na standardowe wyj&#x15B;cie:</p>
<pre><code>dos2unix &lt; a.txt
cat a.txt | dos2unix</code></pre>
<p>Konwersja i zast&#x105;pienie a.txt; konwersja i zast&#x105;pienie b.txt:</p>
<pre><code>dos2unix a.txt b.txt
dos2unix -o a.txt b.txt</code></pre>
<p>Konwersja i zast&#x105;pienie a.txt w trybie ascii:</p>
<pre><code>dos2unix a.txt</code></pre>
<p>Konwersja i zast&#x105;pienie a.txt w trybie ascii; konwersja i zast&#x105;pienie b.txt w trybie 7-bitowym:</p>
<pre><code>dos2unix a.txt -c 7bit b.txt
dos2unix -c ascii a.txt -c 7bit b.txt
dos2unix -ascii a.txt -7 b.txt</code></pre>
<p>Konwersja a.txt z formatu Mac do formatu uniksowego:</p>
<pre><code>dos2unix -c mac a.txt
mac2unix a.txt</code></pre>
<p>Konwersja a.txt z formatu uniksowego do formatu Mac:</p>
<pre><code>unix2dos -c mac a.txt
unix2mac a.txt</code></pre>
<p>Konwersja i zast&#x105;pienie a.txt z zachowaniem oryginalnego znacznika czasu:</p>
<pre><code>dos2unix -k a.txt
dos2unix -k -o a.txt</code></pre>
<p>Konwersja a.txt i zapis do e.txt:</p>
<pre><code>dos2unix -n a.txt e.txt</code></pre>
<p>Konwersja a.txt i zapis do e.txt z zachowaniem znacznika czasu e.txt takiego, jak a.txt:</p>
<pre><code>dos2unix -k -n a.txt e.txt</code></pre>
<p>Konwersja i zast&#x105;pienie a.txt; konwersja b.txt i zapis do e.txt:</p>
<pre><code>dos2unix a.txt -n b.txt e.txt
dos2unix -o a.txt -n b.txt e.txt</code></pre>
<p>Konwersja c.txt i zapis do e.txt; konwersja i zast&#x105;pienie a.txt; konwersja i zast&#x105;pienie b.txt; konwersja d.txt i zapis do f.txt:</p>
<pre><code>dos2unix -n c.txt e.txt -o a.txt b.txt -n d.txt f.txt</code></pre>
<h1 id="KONWERSJA-REKURENCYJNA">KONWERSJA REKURENCYJNA</h1>
<p>W pow&#x142;oce uniksowej mo&#x17C;na u&#x17C;y&#x107; polece&#x144; find(1) i xargs(1) do rekurencyjnego uruchomienia dos2unix na wszystkich plikach tekstowych w strukturze drzewa katalog&oacute;w. Na przyk&#x142;ad, aby przekonwertowa&#x107; wszystkie pliki .txt w drzewie katalog&oacute;w poni&#x17C;ej katalogu bie&#x17C;&#x105;cego, nale&#x17C;y napisa&#x107;:</p>
<pre><code>find . -name &#39;*.txt&#39; -print0 |xargs -0 dos2unix</code></pre>
<p>Opcja <code>-print0</code> polecenia find(1) i odpowiadaj&#x105;ca jej opcja <code>-0</code> polecenia xargs(1) s&#x105; potrzebne, je&#x15B;li istniej&#x105; pliki ze spacjami lub cudzys&#x142;owami w nazwie. W przeciwnym wypadku opcje te mo&#x17C;na pomin&#x105;&#x107;. Inny spos&oacute;b to u&#x17C;ycie find(1) z opcj&#x105; <code>-exec</code>:</p>
<pre><code>find . -name &#39;*.txt&#39; -exec dos2unix {} \;</code></pre>
<p>Z poziomu linii polece&#x144; Windows mo&#x17C;na u&#x17C;y&#x107; nast&#x119;puj&#x105;cego polecenia:</p>
<pre><code>for /R %G in (*.txt) do dos2unix &quot;%G&quot;</code></pre>
<p>U&#x17C;ytkownicy pow&#x142;oki PowerShell mog&#x105; u&#x17C;y&#x107; nast&#x119;puj&#x105;cego polecenia w Windows PowerShell:</p>
<pre><code>get-childitem -path . -filter &#39;*.txt&#39; -recurse | foreach-object {dos2unix $_.Fullname}</code></pre>
<h1 id="LOKALIZACJA">LOKALIZACJA</h1>
<dl>
<dt id="LANG"><b>LANG</b></dt>
<dd>
<p>G&#x142;&oacute;wny j&#x119;zyk wybiera si&#x119; zmienn&#x105; &#x15B;rodowiskow&#x105; LANG. Zmienna LANG sk&#x142;ada si&#x119; z kilku cz&#x119;&#x15B;ci. Pierwsza cz&#x119;&#x15B;&#x107; to ma&#x142;e litery oznaczaj&#x105;ce kod j&#x119;zyka. Druga cz&#x119;&#x15B;&#x107; jest opcjonalna i zawiera kod kraju pisany wielkimi literami, poprzedzony podkre&#x15B;leniem. Jest tak&#x17C;e opcjonalna trzecia cz&#x119;&#x15B;&#x107;: kodowanie znak&oacute;w, poprzedzone kropk&#x105;. Kilka przyk&#x142;ad&oacute;w dla pow&#x142;ok zgodnych ze standardem POSIX:</p>
<pre><code>export LANG=nl holenderski
export LANG=nl_NL holenderski, Holandia
export LANG=nl_BE holenderski, Belgia
export LANG=es_ES hiszpa&#x144;ski, Hiszpania
export LANG=es_MX hiszpa&#x144;ski, Meksyk
export LANG=en_US.iso88591 angielski, USA, kodowanie Latin-1
export LANG=en_GB.UTF-8 angielski, Wlk. Brytania, kodowanie UTF-8</code></pre>
<p>Pe&#x142;n&#x105; list&#x119; kod&oacute;w j&#x119;zyk&oacute;w i kraj&oacute;w mo&#x17C;na znale&#x17A;&#x107; w podr&#x119;czniku do gettexta: <a href="https://www.gnu.org/software/gettext/manual/html_node/Usual-Language-Codes.html">https://www.gnu.org/software/gettext/manual/html_node/Usual-Language-Codes.html</a></p>
<p>W systemach uniksowych do uzyskania informacji dotycz&#x105;cych lokalizacji mo&#x17C;na u&#x17C;y&#x107; polecenia locale(1).</p>
</dd>
<dt id="LANGUAGE"><b>LANGUAGE</b></dt>
<dd>
<p>Przy u&#x17C;yciu zmiennej &#x15B;rodowiskowej LANGUAGE mo&#x17C;na okre&#x15B;li&#x107; list&#x119; j&#x119;zyk&oacute;w wg priorytetu, oddzielonych dwukropkami. dos2unix przyjmuje pierwsze&#x144;stwo zmiennej LANGUAGE nad LANG. Na przyk&#x142;ad, najpierw holenderski, nast&#x119;pnie niemiecki: <code>LANGUAGE=nl:de</code>. Aby skorzysta&#x107; z listy wg priorytet&oacute;w ze zmiennej LANGUAGE, trzeba najpierw w&#x142;&#x105;czy&#x107; lokalizacj&#x119; przez ustawienie zmiennej LANG (lub LC_ALL) na warto&#x15B;&#x107; inn&#x105; ni&#x17C; &quot;C&quot;. Wi&#x119;cej informacji znajduje si&#x119; w podr&#x119;czniku do gettexta: <a href="https://www.gnu.org/software/gettext/manual/html_node/The-LANGUAGE-variable.html">https://www.gnu.org/software/gettext/manual/html_node/The-LANGUAGE-variable.html</a></p>
<p>W przypadku wybrania niedost&#x119;pnego j&#x119;zyka, otrzymamy standardowe, angielskie komunikaty.</p>
</dd>
<dt id="DOS2UNIX_LOCALEDIR"><b>DOS2UNIX_LOCALEDIR</b></dt>
<dd>
<p>Przy u&#x17C;yciu zmiennej &#x15B;rodowiskowej DOS2UNIX_LOCALEDIR, mo&#x17C;na nadpisa&#x107; ustawienie LOCALEDIR z czasu kompilacji. LOCALEDIR to katalog u&#x17C;ywany do znalezienia plik&oacute;w lokalizacji. Domy&#x15B;ln&#x105; warto&#x15B;ci&#x105; dla GNU jest <code>/usr/local/share/locale</code>. Opcja <b>--version</b> wy&#x15B;wietla u&#x17C;ywan&#x105; warto&#x15B;&#x107; LOCALEDIR.</p>
<p>Przyk&#x142;ad (dla pow&#x142;oki POSIX):</p>
<pre><code>export DOS2UNIX_LOCALEDIR=$HOME/share/locale</code></pre>
</dd>
</dl>
<h1 id="WARTO-ZWRACANA">WARTO&#x15A;&#x106; ZWRACANA</h1>
<p>W przypadku powodzenia zwracane jest zero. Je&#x15B;li wyst&#x105;pi b&#x142;&#x105;d systemowy, zwracany jest ostatni b&#x142;&#x105;d systemowy. W przypadku innych b&#x142;&#x119;d&oacute;w zwracane jest 1.</p>
<p>Warto&#x15B;&#x107; zwracana w trybie cichym to zawsze zero, z wyj&#x105;tkiem sytuacji podania b&#x142;&#x119;dnych opcji linii polece&#x144;.</p>
<h1 id="STANDARDY">STANDARDY</h1>
<p><a href="https://pl.wikipedia.org/wiki/Plik_tekstowy">https://pl.wikipedia.org/wiki/Plik_tekstowy</a></p>
<p><a href="https://en.wikipedia.org/wiki/Carriage_return">https://en.wikipedia.org/wiki/Carriage_return</a></p>
<p><a href="https://pl.wikipedia.org/wiki/Koniec_linii">https://pl.wikipedia.org/wiki/Koniec_linii</a></p>
<p><a href="https://pl.wikipedia.org/wiki/Unicode">https://pl.wikipedia.org/wiki/Unicode</a></p>
<h1 id="AUTORZY">AUTORZY</h1>
<p>Benjamin Lin &lt;blin@socs.uts.edu.au&gt;; Bernd Johannes Wuebben (tryb mac2unix) &lt;wuebben@kde.org&gt;; Christian Wurll (dodawanie dodatkowej nowej linii) &lt;wurll@ira.uka.de&gt;; Erwin Waterlander &lt;waterlan@xs4all.nl&gt; (prowadz&#x105;cy)</p>
<p>Strona projektu: <a href="https://waterlander.net/dos2unix/">https://waterlander.net/dos2unix/</a></p>
<p>Strona SourceForge: <a href="https://sourceforge.net/projects/dos2unix/">https://sourceforge.net/projects/dos2unix/</a></p>
<h1 id="ZOBACZ-TAK-E">ZOBACZ TAK&#x17B;E</h1>
<p>file(1) find(1) iconv(1) locale(1) xargs(1)</p>
</body>
</html>

View file

@ -0,0 +1,840 @@
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".
Ponadto wersja z SunOS-a/Solarisa domyślnie wykonuje konwersję w trybie
*iso*, podczas gdy ta wersja domyślnie wykonuje konwersję w trybie
*ascii*.
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 wynik.txt
--allow-chown
Zezwolenie na zmianę właściciela w trybie starego pliku.
W przypadku użycia tej opcji, konwersja nie zostanie przerwana,
jeśli nie ma możliwości zachowania właściciela i/lub grupy
oryginalnego pliku w trybie starego pliku. Konwersja będzie
kontynuowana, a przekonwertowany plik będzie miał tego samego
właściciela, jakiego by miał w trybie nowego pliku. P. także opcje
"-o" i "-n". Opcja jest dostępna tylko wtedy, gdy dos2unix ma
obsługę zachowywania użytkownika i grupy plików.
-ascii
Domyślny tryb konwersji. Więcej w sekcji TRYBY 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.
-D, --display-enc KODOWANIE
Ustawienie kodowania wyświetlanego tekstu. KODOWANIE to jedno z:
*ansi*, *unicode*, *unicodebom*, *utf8*, *utf8bom*, przy czym
domyślne to ansi.
Ta opcja jest dostępna wyłączenie w programie dos2unix dla Windows z
obsługą nazw plików Unicode. Nie ma wpływu na same nawy
odczytywanych i zapisywanych plików, a jedynie na sposób ich
wyświetlania.
Istnieje kilka sposobów wyświetlania tekstu w konsoli Windows w
zależności od kodowania tekstu. Wszystkie mają swoje zalety i wady.
ansi
Domyślna metoda programu dos2unix to stosowanie tekstu
kodowanego w ANSI. Zaletą jest wsteczna zgodność. Działa z
fontami rastrowymi, jak i TrueType. W niektórych rejonach może
być potrzeba zmiany aktywnej strony kodowej DOS OEM na systemową
stronę kodową Windows ANSI przy użyciu polecenia "chcp",
ponieważ dos2unix wykorzystuje systemową stronę kodową Windows.
Wadą kodowania ansi jest fakt, że międzynarodowe nazwy plików ze
znakami spoza domyślnej systemowej strony kodowej nie są
wyświetlane właściwie. Można zamiast tego zobaczyć znak
zapytania albo niewłaściwy symbol. Jeżeli nie pracujemy z obcymi
nazwami plików, ta metoda jest poprawna.
unicode, unicodebom
Zaletą kodowania unicode (windowsową nazwą dla UTF-16) jest
(zwykle) właściwe wyświetlanie tekstu. Nie ma potrzeby zmiany
aktywnej strony kodowej. Może być potrzeba zmiany fontu konsoli
na font TrueType, aby znaki międzynarodowe były wyświetlane
poprawnie. Jeśli znak nie jest obecny w foncie TrueType, zwykle
widać mały kwadrat, czasami ze znakiem zapytania w środku.
W przypadku używania konsoli ConEmu cały tekst jest wyświetlany
poprawnie, ponieważ ConEmu automatycznie wybiera dobry font.
Wadą kodowania unicode jest niezgodność z ASCII. Wyjście nie
jest łatwe do obsłużenia w przypadku przekierowania do innego
programu lub pliku.
W przypadku użycia metody "unicodebom", tekst w unikodzie jest
poprzedzony znakiem BOM (Byte Order Mark). BOM jest wymagany do
poprawnego przekierowania lub przekazywania przez potok w
powłoce PowerShell.
utf8, utf8bom
Zaletą kodowania utf8 jest zgodność z ASCII. Trzeba ustawić font
konsoli na font TrueType. Przy użyciu fontu TrueType tekst jest
wyświetlany podobnie do kodowania "unicode".
Wadą jest fakt, że w przypadku używania domyślnego fontu
rastrowego, wszystkie znaki spoza ASCII są wyświetlane
niepoprawnie. Nie tylko unikodowe nazwy plików, ale także
przetłumaczone komunikaty stają się nieczytelne. W Windows
skonfigurowanym dla rejonu Azji Wschodniej widać dużo migotania
konsoli w trakcie wyświetlania komunikatów.
W konsoli ConEmu metoda kodowania utf8 działa dobrze.
W przypadku użycia metody "utf8bom", tekst w UTF-8 jest
poprzedzony znakiem BOM (Byte Order Mark). BOM jest wymagany do
poprawnego przekierowania lub przekazywania przez potok w
powłoce PowerShell.
Domyślne kodowanie można zmienić przy użyciu zmiennej środowiskowej
DOS2UNIX_DISPLAY_ENC, ustawiając ją na "unicode", "unicodebom",
"utf8" lub "utf8bom".
-e, --add-eol
Dodawanie znaku końca linii do ostatniej linii, jeśli ta go nie
zawiera. Działa przy każdej konwersji.
Pliki przekształcone z formatu DOS do Uniksa mogą nie mieć w
ostatnim wierszu znaku końca linii. Istnieją edytory tekstu
zapisujące pliki tekstowe bez znaku końca wiersza w ostatniej linii.
Niektóre programy uniksowe mają problemy przy przetwarzaniu takich
plików, ponieważ standard POSIX określa, że każdy wiersz pliku
tekstowego musi kończyć się znakiem końca linii. Na przykład
łączenie plików może nie dać oczekiwanego wyniku.
--error-binary
Zwrócenie błędu, jeśli pominięto plik binarny.
-f, --force
Wymuszenie konwersji plików binarnych.
-gb, --gb18030
Pod Windows pliki w UTF-16 są domyślnie konwertowane do UTF-8,
niezależnie od ustawienia lokalizacji. Ta opcja pozwala
przekonwertować pliki w UTF-16 do GB18030. Opcja jest dostępna tylko
pod Windows, więcej w sekcji dotyczącej GB18030.
-h, --help
Wyświetlenie opisu i zakończenie.
-i[FLAGI], --info[=FLAGI] PLIK ...
Wyświetlenie informacji o pliku. Konwersja nie jest wykonywana.
Wypisywane są następujące informacje, w tej kolejności: liczba
DOS-owych końców linii, liczba uniksowych końców linii, liczba
macowych końców linii, znacznik BOM, tekstowy lub binarny, nazwa
pliku.
Przykładowe wyjście:
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 binary dos2unix.exe
Uwaga: czasami plik binarny może być błędnie rozpoznany jako
tekstowy. P. także opcja "-s".
Jeśli dodatkowo użyta jest opcja "-e" lub "--add-eol", wypisywany
jest także rodzaj końca linii z ostatniej linii, lub "noeol", jeśli
nie ma żadnego.
Przykładowe wyjście:
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
Opcjonalnie można ustawić dodatkowe flagi, aby zmienić wyjście. Można dodać jedną lub więcej flag.
0 Wypisanie wierszy informacji o pliku zakończonych znakiem NUL
zamiast znaku nowej linii. Pozwala to na poprawną interpretację
nazw plików zawierających spacje lub cudzysłowy w przypadku
użycia flagi c. Flagi należy używać w połączeniu z opcją -0 lub
"--null" programu xargs(1).
d Wypisanie liczby DOS-owych końców linii.
u Wypisanie liczby uniksowych końców linii.
m Wypisanie liczby macowych końców linii.
b Wypisanie znacznika BOM.
t Wypisanie, czy plik jest tekstowy, czy binarny.
e Wypisanie rodzaju końca wiersza w ostatnim wierszu, lub "noeol",
jeśli nie ma żadnego.
c Wypisanie tylko plików, które zostałyby przekonwertowane.
Z flagą "c" dos2unix wypisze tylko pliki zawierające DOS-owe
końce linii, a unix2dos wypisze tylko nazwy plików zawierających
uniksowe końce linii.
Jeśli dodatkowo użyta jest opcja "-e" lub "--add-eol",
wypisywane są także pliki bez zakończenia ostatniej linii.
h Wypisanie nagłówka.
p Wyświetlanie nazw plików bez ścieżki.
Przykłady:
Pokazanie informacji o wszystkich plikach *.txt:
dos2unix -i *.txt
Pokazanie tylko liczby DOS-owych i uniksowych końców linii:
dos2unix -idu *.txt
Pokazanie tylko znacznika BOM:
dos2unix --info=b *.txt
Wypisanie listy plików zawierających DOS-owe końce linii:
dos2unix -ic *.txt
Wypisanie listy plików zawierających uniksowe końce linii:
unix2dos -ic *.txt
Wypisanie listy plików zawierających DOS-owe końce linii lub bez
znaku końca w ostatniej linii:
dos2unix -e -ic *.txt
Konwersja tylko plików mających DOS-owe końce linii, pozostawienie
pozostałych bez zmian:
dos2unix -ic0 *.txt | xargs -0 dos2unix
Wyszukanie plików tekstowych zawierających DOS-owe końce linii:
find -name '*.txt' -print0 | xargs -0 dos2unix -ic
-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
Zapisanie znacznika BOM (Byte Order Mark) w pliku wyjściowym.
Domyślnie zapisywany jest BOM UTF-8.
Jeśli plik wejściowy jest w kodowaniu UTF-16 i użyto opcji "-u",
zostanie zapisany BOM UTF-16.
Nigdy nie należy używać tej opcji, jeśli kodowanie wyjściowe jest
inne niż UTF-8, UTF-16 lub GB18030. 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ę.
--no-allow-chown
Bez zezwolenia na zmianę właściciela pliku w trybie starego pliku
(domyślne).
Przerwanie konwersji, jeżeli użytkownik lub grupa oryginalnego pliku
nie może być zachowana w trybie starego pliku. P. także opcje "-o"
oraz "-n". Ta opcja jest dostępna tylko jeśli dos2unix ma obsługę
zachowywania użytkownika i grupy plików.
--no-add-eol
Bez dodawania znaku końca linii do ostatniego wiersza, jeśli ten go
nie zawiera (domyślne).
--no-error-binary
Bez zwracania błędu, jeśli pominięto plik binarny (domyślne).
-O, --to-stdout
Zapis na standardowe wyjście, jak filtr uniksowy. Opcja "-o"
przywróci tryb starego pliku (zamianę z miejscu).
W połączeniu z opcją "-e" pliki mogą być właściwie łączone - bez
połączonych ostatnich i pierwszych linii oraz znaków unikodowych BOM
w środku połączonego pliku. Przykład:
dos2unix -e -O plik1.txt plik2.txt > wynik.txt
-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 niezamierzonych osób. Zachowanie właściciela, grupy i
praw odczytu/zapisu jest obsługiwane tylko na Uniksie.
Aby sprawdzić, czy doswunix ma obsługę zachowywania użytkownika i
grupy plików, można napisać "dos2unix -V".
Konwersja jest wykonywana zawsze przy użyciu pliku tymczasowego.
Jeśli w trakcie konwersji wystąpi błąd, plik tymczasowy jest
usuwany, a plik oryginalny pozostaje nietknięty. Jeśli konwersja się
powiedzie, plik oryginalny jest zastępowany plikiem tymczasowym.
Można mieć prawa zapisu do pliku oryginalnego, ale brak uprawnień,
aby nadać tego samego właściciela i/lub grupę, co plik oryginalny,
plikowi tymczasowemu. Oznacza to, że nie można zachować użytkownika
i/lub grupy oryginalnego pliku. W takim przypadku można użyć opcji
"--allow-chown", aby kontynuować konwersję:
dos2unix --allow-chown foo.txt
Inny sposób to użycie trybu nowego pliku:
dos2unix -n foo.txt foo.txt
Zaletą opcji "--allow-chown" jest możliwość użycia masek oraz
zachowanie właściciela w miarę możliwości.
-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).
Pomijanie plików binarnych ma na celu zapobieżenie przypadkowym
błędom. Uwaga: wykrywanie plików binarnych nie jest w 100% odporne
na błędy. Pliki wejściowe są przeszukiwane pod kątem symboli
binarnych, które zwykle nie występują w plikach tekstowych. Może się
zdarzyć, że plik binarny zawiera tylko zwykłe znaki tekstowe. Taki
plik binarny będzie błędnie widziany jako plik tekstowy.
Domyślnie nie jest zwacany błąd, kiedy zostaje pominięty plik
binarny. Jeśli użyta zostanie opcja "--error-binary", błąd jest
zwracany.
-u, --keep-utf16
Zachowanie oryginalnego kodowania pliku wejściowego UTF-16. Plik
wyjściowy zostanie zapisany w tym samym kodowaniu UTF-16 (little-
lub big-endian), co plik wejściowy. Zapobiega to przekształceniu do
UTF-8. Do pliku zostanie zapisany odpowiedni znacznik BOM UTF-16. Tę
opcję można wyłączyć opcją "-ascii".
-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".
-v, --verbose
Wyświetlanie szczegółowych komunikatów. Wyświetlane śa dodatkowe
informacje o znacznikach BOM (Byte Order Mark) oraz liczbie
przekonwertowanych końców linii.
-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
Domyślnie 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
To jest domyślny tryb konwersji. Służy do konwersji plików
kodowanych ASCII lub zgodnie z ASCII, np. UTF-8. Włączenie trybu
ascii wyłącza tryby 7bit i iso.
Jeśli dos2unix ma obsługę UTF-16, pliki kodowane UTF-16 są
konwertowane do bieżącego kodowania w systamach zgodnych z POSIX lub
do UTF-8 na Windows. Włączenie trybu ascii wyłącza opcję
zachowywania kodowania UTF-16 ("-u") oraz opcje zakładające wejście
UTF-16 ("-ul" oraz "-ub"). Aby sprawdzić, czy dos2unix ma obsługę
UTF-16, można wywołać "dos2unix -V". Więcej w sekcji UNICODE.
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 niemają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 wejście.txt wynik.txt
Konwersja ze strony kodowej DOS CP850 do uniksowego Latin-1:
dos2unix -850 -n wejście.txt wynik.txt
Konwersja ze strony kodowej Windows CP1252 do uniksowego Latin-1:
dos2unix -1252 -n wejście.txt wynik.txt
Konwersja ze strony kodowej Windows CP1252 do uniksowego UTF-8
(Unicode):
iconv -f CP1252 -t UTF-8 wejście.txt | dos2unix > wynik.txt
Konwersa z uniksowego Latin-1 do domyślnej strony kodowej DOS:
unix2dos -iso -n wejście.txt wynik.txt
Konwersja z uniksowego Latin-1 do strony kodowej DOS CP850:
unix2dos -850 -n wejście.txt wynik.txt
Konwersja z uniksowego Latin-1 do strony kodowej Windows CP1252:
unix2dos -1252 -n wejście.txt wynik.txt
Konwersja z uniksowego UTF-8 (Unicode) do strony kodowej Windows
CP1252:
unix2dos < wejście.txt | iconv -f UTF-8 -t CP1252 > wynik.txt
Więcej pod adresem <https://czyborra.com/charsets/codepages.html>
oraz <https://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 pliki tekstowe ASCII.
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".
Pod Uniksem/Linuksem pliki w kodowaniu UTF-16 są konwertowane do
kodowania znaków ustawionej lokalizacji. Kodowanie znaków dla
lokalizacji można sprawdzić poleceniem locale(1). Jeśli konwersja nie
jest możliwa, wystąpi błąd, a plik zostanie pominięty.
Pod Windows pliki UTF-16 są domyślnie konwertowane do UTF-8. Pliki
tekstkowe w kodowaniu UTF-8 są dobrze obsługiwane zarówno pod Windows,
jak i Uniksem/Linuksem.
Kodowania UTF-16 i UTF-8 są w pełni zgodne, konwersja nie spowoduje
utraty żadnej części tekstu. W przypadku wystąpienia błędu konwersji, na
przykład w przypadku błędu w pliku wejściowym UTF-16, plik zostanie
pominięty.
W przypadku użycia opcji "-u", plik wejściowy zostanie zapisany w tym
samym kodowaniu UTF-16, co plik wejściowy. Opcja "-u" zapobiega
konwersji do UTF-8.
dos2unix oraz unix2dos nie mają opcji pozwalającej na konwersję plików
UTF-8 do UTF-16.
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
<https://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".
Unikodowe nazwy plików w Windows
dos2unix ma opcjonalną obsługę odczytu i zapisu nazw plików Unicode w
linii poleceń Windows. Oznacza to, że dos2unix potrafi otwierać pliki
zawierające w nazwie znaki spoza domyślnej systemowej strony kodowej
ANSI. Aby sprawdzić, czy dos2unix dla Windows został zbudowany z obsługą
nazw plików Unicode, można wpisać "dos2unix -V".
Przy wyświetlaniu nazw plików Unicode w konsoli Windows występuje kilka
problemów. Więcej informacji w opisie opcji "-D", "--display-enc". Nazwy
plików mogą być wyświetlane błędnie na konsoli, ale pliki będą
zapisywane z poprawną nazwą.
Przykłady Unicode
Konwersja pliku UTF-16 (z BOM) z formatu Windows do uniksowego UTF-8:
dos2unix -n wejście.txt wynik.txt
Konwersja pliku UTF-16LE (bez BOM) z formatu Windows do uniksowego
UTF-8:
dos2unix -ul -n wejście.txt wynik.txt
Konwersja z uniksowego UTF-8 do UTF-8 z BOM dla Windows:
unix2dos -m -n wejście.txt wynik.txt
Konwersja z uniksowego UTF-8 do UTF-16 dla Windows:
unix2dos < wejście.txt | iconv -f UTF-8 -t UTF-16 > wynik.txt
GB18030
GB18030 to standard urzędowy w Chinach. Obowiązkowy podzbiór standardu
GB18030 jest oficjalnym wymaganiem każdego oprogramowania sprzedawanego
w Chinach. Więcej pod adresem <https://en.wikipedia.org/wiki/GB_18030>.
GB18030 jest w pełni zgodny z Unicode i może być uważany za format
transformacji unikodu. Podobnie jak UTF-8, GB18030 jest zgodny z ASCII.
Jest także zgodny ze stroną kodową Windows 936, znaną też jako GBK.
Pod Uniksem/Linuksem pliki UTF-16 są konwertowane do GB18030, jeśli
kodowanie dla lokalizacji jest ustawione na GB18030. Uwaga: będzie to
działać tylko, jeśli lokalizacja jest obsługiwana przez system. Listę
obsługiwanych lokalizacji można sprawdzić poleceniem "locale -a".
Pod Windows w celu konwersji plików UTF-16 do GB18030 należy użyć opcji
"-gb".
Pliki w kodowaniu GB18030 mogą mieć znacznik BOM, podobnie jak pliki w
Unicode.
PRZYKŁADY
Odczyt ze standardowego wejścia i zapis na standardowe wyjście:
dos2unix < a.txt
cat a.txt | dos2unix
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
W powłoce uniksowej można użyć poleceń find(1) i xargs(1) do
rekurencyjnego uruchomienia dos2unix na wszystkich plikach 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' -print0 |xargs -0 dos2unix
Opcja "-print0" polecenia find(1) i odpowiadająca jej opcja -0 polecenia
xargs(1) są potrzebne, jeśli istnieją pliki ze spacjami lub cudzysłowami
w nazwie. W przeciwnym wypadku opcje te można pominąć. Inny sposób to
użycie find(1) z opcją "-exec":
find . -name '*.txt' -exec dos2unix {} \;
Z poziomu linii poleceń Windows można użyć następującego polecenia:
for /R %G in (*.txt) do dos2unix "%G"
Użytkownicy powłoki PowerShell mogą użyć następującego polecenia w
Windows PowerShell:
get-childitem -path . -filter '*.txt' -recurse | foreach-object {dos2unix $_.Fullname}
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:
<https://www.gnu.org/software/gettext/manual/html_node/Usual-Languag
e-Codes.html>
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:
<https://www.gnu.org/software/gettext/manual/html_node/The-LANGUAGE-
variable.html>
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
<https://pl.wikipedia.org/wiki/Plik_tekstowy>
<https://en.wikipedia.org/wiki/Carriage_return>
<https://pl.wikipedia.org/wiki/Koniec_linii>
<https://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: <https://waterlander.net/dos2unix/>
Strona SourceForge: <https://sourceforge.net/projects/dos2unix/>
ZOBACZ TAKŻE
file(1) find(1) iconv(1) locale(1) xargs(1)