2 dos2unix - програма для перетворення даних у текстовому форматі DOS/Mac
3 у формат Unix, і навпаки
6 dos2unix [параметри] [ФАЙЛ ...] [-n ВХІДНИЙ_ФАЙЛ ВИХІДНИЙ_ФАЙЛ ...]
7 unix2dos [параметри] [ФАЙЛ ...] [-n ВХІДНИЙ_ФАЙЛ ВИХІДНИЙ_ФАЙЛ ...]
10 До складу пакунка Dos2unix включено програми "dos2unix" та "unix2dos",
11 призначені для перетворення звичайних текстових даних у форматі DOS або
12 Mac на дані у форматі Unix, і навпаки.
14 У текстових файлах DOS/Windows розрив рядка або перехід на новий рядок
15 здійснюється за допомогою комбінації двох символів: повернення каретки
16 (CR) і переведення рядка (LF). У текстових файлах Unix за перехід на
17 новий рядок відповідає один символ: переведення рядка (LF). У текстових
18 файлах Mac, до Mac OS X, за розрив рядка відповідав один символ:
19 повернення каретки (CR). У сучасних версіях Mac OS використовується
20 типовий для Unix розрив рядка (LF).
22 Окрім символів розриву рядка, програма Dos2unix здатна виконувати
23 перетворення кодування файлів. Можна перетворити дані у декількох
24 кодуваннях DOS на файли у кодуванні Latin-1 Unix. Також можна
25 перетворити дані у файлах Windows Unicode (UTF-16) на дані у кодуванні
28 Під час перетворення програма пропускатиме двійкові файли, якщо ви не
29 накажете їй виконати перетворення таких файлів безпосередньо.
31 Програма автоматично пропускатиме файли, які не є звичайними файлами,
32 зокрема каталоги та канали FIFO.
34 Типово, програма не вноситиме змін до символічних посилань та об’єктів
35 посилань. Якщо потрібно, програма може замінити символічні посилання або
36 записати перетворені дані до файла-призначення символічного посилання. У
37 Windows запису до об’єкта символічного посилання не передбачено.
39 Програму dos2unix було створено за зразком програми dos2unix для
40 SunOS/Solaris. Втім, існує одна важлива відмінність від оригінальної
41 версії для SunOS/Solaris. Ця версія типово виконує заміну файлів під час
42 перетворення (старий режим обробки файлів), а у оригінальній версії для
43 SunOS/Solaris передбачено підтримку лише парного перетворення (новий
44 режим обробки файлів). Див. також параметри "-o" та "-n".
47 -- Вважати усі наступні параметри назвами файлів. Цим параметром слід
48 користуватися, якщо вам потрібно виконати перетворення файлів, чиї
49 назви містять дефіси. Наприклад, щоб виконати перетворення файла
50 «-foo», скористайтеся такою командою:
54 Або у новому режимі файлів:
56 dos2unix -n -- -foo out.txt
59 Виконати лише перетворення символів розриву рядків. Типовий режим
63 Виконати перетворення з кодування DOS на кодування ISO-8859-1. Див.
64 розділ щодо режимів перетворення.
67 Використати кодову таблицю 1252 Windows (західноєвропейські мови).
70 Використовувати кодову сторінку DOS 437 (США). Це типова кодова
71 сторінка для перетворення ISO.
74 Використовувати кодову сторінку DOS 850 (західноєвропейські мови).
77 Використовувати сторінку DOS 860 (португальська).
80 Використовувати сторінку DOS 863 (канадська французька).
83 Використовувати сторінку DOS 865 (скандинавські мови).
85 -7 Перетворювати 8-бітові символи на 7-бітові.
88 Зберегти позначку порядку байтів (BOM). Якщо у файлі вхідних даних є
89 BOM, записати BOM до файла результатів. Це типова поведінка під час
90 перетворення у формат із символами розриву рядків DOS. Див. також
94 Встановити режим перетворення. Значенням аргументу РЕЖИМ може бути
95 один з таких рядків: *ascii*, *7bit*, *iso*, *mac*. Типовим є режим
99 Примусове перетворення двійкових файлів.
102 Показати довідкові дані і завершити роботу.
104 -i[ПРАПОРЦІ], --info[=ПРАПОРЦІ] ФАЙЛ ...
105 Вивести дані щодо файла. Не виконувати перетворення.
107 Буде виведено такі дані, у вказаному порядку: кількість розривів
108 рядків у форматі DOS, кількість розривів рядків у форматі Unix,
109 кількість розривів рядків у форматі Mac, позначка порядку байтів,
110 текстовим чи бінарним є файл та назву файла.
114 6 0 0 no_bom text dos.txt
115 0 6 0 no_bom text unix.txt
116 0 0 6 no_bom text mac.txt
117 6 6 6 no_bom text mixed.txt
118 50 0 0 UTF-16LE text utf16le.txt
119 0 50 0 no_bom text utf8unix.txt
120 50 0 0 UTF-8 text utf8dos.txt
121 2 418 219 no_bom binary dos2unix.exe
123 Крім того, можна вказати додаткові прапорці для внесення змін у
124 виведені дані. Можна використовувати один або декілька таких
127 d Вивести кількість символів розривів рядка DOS.
129 u Вивести кількість символів розривів рядка Unix.
131 m Вивести кількість символів розривів рядка Mac.
133 b Вивести позначку порядку байтів.
135 t Вивести дані щодо того, є файл текстовим чи бінарним.
137 c Вивести дані лише тих файлів, які було б перетворено.
139 Із прапорцем "c" dos2unix виведе лише назви файлів, у яких
140 містяться розриви рядків DOS. unix2dos виведе лише назви файлів,
141 у яких містяться розриви рядків Unix.
145 Вивести дані щодо усіх файлів *.txt:
149 Вивести кількість розривів рядків у форматі DOS і розривів рядків у
154 Вивести лише позначку порядку байтів:
156 dos2unix --info=b *.txt
158 Вивести список файлів, у яких є символи розриву рядків DOS.
162 Вивести список файлів, у яких використано символи розриву рядків
168 Зберегти часову позначку файла вхідних даних у файлі результатів
172 Вивести умови ліцензування програми.
175 Вставити додатковий символ розриву рядка.
177 dos2unix: перетворення на два символи розриву рядків Unix
178 відбуватиметься лише для комбінацій розриву рядків DOS. У режимі Mac
179 виконуватиметься перетворення на два розриви рядків Unix лише
180 символів розриву рядків Mac.
182 unix2dos: перетворення на дві комбінації розриву рядків DOS
183 відбуватиметься лише для символів розриву рядків DOS. У режимі Mac
184 виконуватиметься перетворення на два розриви рядків Mac лише
185 символів розриву рядків Unix.
188 Записати до файла результатів позначку порядку байтів (BOM). Типово
189 буде записано позначку порядку байтів UTF-8.
191 Якщо дані початкового файла закодовано у UTF-16 і використано
192 параметр "-u", буде дописано позначку порядку байтів UTF-16.
194 Не використовуйте цей параметр для кодувань результатів, відмінних
195 від UTF-8 або UTF-16. Див. також розділ щодо UNICODE.
197 -n, --newfile ВХІДНИЙ_ФАЙЛ ВИХІДНИЙ_ФАЙЛ ...
198 Новий режим обробки файлів. Перетворити дані з файла ВХІДНИЙ_ФАЙЛ і
199 записати результати до файла ВИХІДНИЙ_ФАЙЛ. Назви файлів слід
200 вказувати парами, *не слід* використовувати шаблони заміни, інакше
201 вміст файлів *буде втрачено*.
203 Власником перетвореного файла буде призначено користувача, яким було
204 розпочато перетворення у режимі нового файла (парному режимі). Права
205 доступу на читання або запис нового файла буде визначено на основі
206 прав доступу до початкового файла мінус umask(1) для користувача,
207 яким було розпочато перетворення.
209 -o, --oldfile ФАЙЛ ...
210 Застарілий режим обробки. Виконати перетворення файла ФАЙЛ і
211 перезаписати його вміст. Типово, програма працює у цьому режимі.
212 Можна використовувати шаблони заміни.
214 У застарілому режимі (режимі заміщення) перетворений файл належатиме
215 тому самому власнику і групі і матиме ті самі права доступу на
216 читання або запис, що і початковий файл. Крім того, якщо
217 перетворення файла виконується іншим користувачем, який має права
218 доступу на запис до файла (наприклад користувачем root),
219 перетворення буде перервано, якщо зберегти початкові значення не
220 вдасться. Зміна власника може означати неможливість читання файла
221 для його початкового власника. Зміна групи може призвести до проблем
222 із безпекою, оскільки файл може стати доступним для читання
223 користувачам, які не повинні мати такі права доступу. Можливість
224 збереження прав власності та прав доступу до файла передбачено лише
228 Режим без виведення повідомлень. Програма не виводитиме жодних
229 попереджень або повідомлень про помилки. Повернутим значенням завжди
230 буде нуль, якщо вказано правильні параметри командного рядка.
233 Вилучити позначку порядку байтів (BOM). Не записувати BOM до файла
234 результатів. Це типова поведінка під час перетворення файлів з
235 форматом розриву рядків Unix. Див. також параметр "-b".
238 Пропускати двійкові файли (типово).
241 Зберегти початкове кодування UTF-16. Файл результатів буде записано
242 у тому самому кодуванні UTF-16, із прямим або зворотним порядком
243 байтів, що і початковий файл. Таким чином можна запобігти
244 перетворенню даних у кодування UTF-8. До файла буде записано
245 відповідну позначку порядку байтів UTF-16. Вимкнути цей параметр
246 можна за допомогою параметра "-ascii".
248 -ul, --assume-utf16le
249 Припускати, що кодуванням вхідних файлів є UTF-16LE.
251 Якщо у початковому файлі є позначка порядку байтів (BOM), її буде
252 використано у файлі-результаті, незалежно від використання цього
255 Якщо вами було зроблено помилкове припущення щодо формату файла
256 (файл вхідних даних насправді не є файлом у форматі UTF-16LE), і
257 дані вдасться успішно перетворити, ви отримаєте файл у кодуванні
258 UTF-8 з помилковим вмістом. Скасувати таке помилкове перетворення
259 можна за допомогою зворотного перетворення iconv(1) з даних у
260 форматі UTF-8 на дані у форматі UTF-16LE. Таким чином ви повернетеся
261 до початкового кодування даних у файлі.
263 Припущення щодо форматування UTF-16LE працює як визначення *режиму
264 перетворення*. Перемиканням на типовий режим *ascii* можна вимкнути
265 припущення щодо форматування UTF-16LE.
267 -ub, --assume-utf16be
268 Припускати, що вхідним форматом є UTF-16BE.
270 Цей параметр працює у спосіб, тотожний до параметра "-ul".
273 Виводити докладні повідомлення. Буде показано додаткові дані щодо
274 позначок порядку байтів та кількості перетворених символів розриву
278 Переходити за символічними посиланням і перетворювати файли, на які
281 -R, --replace-symlink
282 Замінити символічні посилання перетвореними файлами (початкові
283 файли, на які вони вказують, змінено не буде).
286 Не змінювати символічні посилання та файли, на які вони посилаються
290 Вивести дані щодо версії і завершити роботу.
293 У звичайному режимі розриви рядків DOS перетворюються на розриви рядків
294 Unix, і навпаки. Розриви рядків Mac перетворенню не підлягають.
296 У режимі Mac розриви рядків Mac перетворюються на розриви рядків Unix, і
297 навпаки. Розриви рядків DOS перетворенню не підлягають.
299 Щоб запустити програму у режимі перетворення Mac, скористайтеся
300 параметром командного рядка "-c mac" або програмами "mac2unix" та
305 У режимі "ascii" виконуватиметься лише перетворення символів розриву
306 рядків. Цей режим є типовим режимом перетворення.
308 Хоча цей режим і називається режимом ASCII (стандарту 7-бітового
309 кодування), насправді кодування символів у ньому є 8-бітовим. Завжди
310 користуйтеся цим режимом для перетворення файлів у кодуванні UTF-8
314 У цьому режимі усі 8-бітові символи, які не є частиною ASCII, (з
315 номерами від 128 до 255) буде перетворено на відповідні 7-бітові
318 iso Перетворення символів буде виконано з кодування (кодової сторінки)
319 DOS до кодування ISO-8859-1 (Latin-1) у Unix. Символи DOS, які не
320 мають еквівалентів у ISO-8859-1 і перетворення яких неможливе, буде
321 перетворено на символ крапки. Те саме стосується символів
322 ISO-8859-1, які не мають еквівалентів у DOS.
324 Якщо буде використано лише параметр "-iso", програма dos2unix
325 спробує визначити активне кодування. Якщо це виявиться неможливим,
326 dos2unix використає типове кодування CP437, яке здебільшого
327 використовується у США. Щоб примусово визначити кодування,
328 скористайтеся параметром -437 (США), -850 (західноєвропейські мови),
329 -860 (португальська), -863 (канадська французька) або -865
330 (скандинавські мови). Використати кодування Windows CP1252
331 (західноєвропейські мови) можна за допомогою параметра -1252. Для
332 інших кодувань використовуйте поєднання dos2unix з iconv(1).
333 Програма iconv здатна виконувати перетворення даних у доволі
334 широкому спектрі кодувань символів.
336 Ніколи не користуйтеся перетворенням ISO для текстових файлів у
337 форматі Unicode. Використання подібного перетворення призведе до
338 ушкодження вмісту файлів у кодуванні UTF-8.
342 Перетворити дані у типовому кодуванні DOS на дані у кодуванні
345 dos2unix -iso -n in.txt out.txt
347 Перетворити дані у кодуванні DOS CP850 на дані у кодуванні Latin-1
350 dos2unix -850 -n in.txt out.txt
352 Перетворити дані у кодуванні CP1252 Windows на дані у кодуванні
355 dos2unix -1252 -n in.txt out.txt
357 Перетворити дані у кодуванні CP252 Windows на дані у кодуванні UTF-8
360 iconv -f CP1252 -t UTF-8 in.txt | dos2unix > out.txt
362 Перетворити дані у кодуванні Latin-1 Unix на дані у типовому
365 unix2dos -iso -n in.txt out.txt
367 Перетворити дані у кодуванні Latin-1 Unix на дані у кодуванні DOS
370 unix2dos -850 -n in.txt out.txt
372 Перетворити дані у кодуванні Latin-1 Unix на дані у кодуванні
375 unix2dos -1252 -n in.txt out.txt
377 Перетворити дані у кодуванні UTF-8 Unix (Unicode) на дані у
378 кодуванні Windows CP1252
380 unix2dos < in.txt | iconv -f UTF-8 -t CP1252 > out.txt
382 Див. також <http://czyborra.com/charsets/codepages.html> та
383 <http://czyborra.com/charsets/iso8859.html>.
387 Існує декілька різних кодувань Unicode. У Unix та Linux у файлах Unicode
388 здебільшого використовується кодування UTF-8. У Windows для текстових
389 файлів Unicode може бути використано кодування UTF-8, UTF-16 або UTF-16
390 зі зворотним порядком байтів. Втім, здебільшого, використовується формат
394 У текстових файлах Unicode, як і у звичайних текстових файлах, може бути
395 використано розриви рядків DOS, Unix або Mac.
397 Усі версії dos2unix та unix2dos здатні виконувати перетворення у
398 кодуванні UTF-8, оскільки UTF-8 було розроблено так, що зворотну
399 сумісність з ASCII збережено.
401 Програми dos2unix та unix2dos, зібрані з підтримкою Unicode UTF-16,
402 можуть читати текстові файли у кодуванні UTF-16 з прямим та зворотним
403 порядком байтів. Щоб дізнатися про те, чи було dos2unix зібрано з
404 підтримкою UTF-16, віддайте команду "dos2unix -V".
406 Типово, файли у кодуванні UTF-16 буде перетворено на файли у кодуванні
407 UTF-8. У Unix/Linux це потребує встановлення кодування символів локалі
408 UTF-8. Для визначення поточного кодування локалі можна скористатися
409 командою locale(1). Обидва типи систем, Windows та Unix/Linux, мають
410 непогані можливості з підтримки форматованих текстових файлів у
413 Кодування UTF-16 та UTF-8 є повністю сумісними. Під час перетворення не
414 буде втрачено жодної інформації. Якщо під час перетворення даних у
415 кодуванні UTF-16 на дані у кодуванні UTF-8 трапиться помилка, наприклад,
416 якщо у вхідному файлі UTF-16 міститиметься якась помилка, файл буде
419 Якщо використано параметр "-u", файл результатів буде записано у тому
420 самому кодуванні UTF-16, що і початковий файл. Використання параметра
421 Option "-u" запобігає перетворенню даних у кодування UTF-8.
423 У dos2unix та unix2dos не передбачено параметра для перетворення даних у
424 кодуванні UTF-8 на дані у кодуванні UTF-16.
426 Режим перетворення ISO та 7-бітовий режим не працюють для файлів UTF-16.
428 Позначка порядку байтів
429 У Windows до текстових файлів у кодуванні Unicode типово дописується
430 позначка порядку байтів (BOM), оскільки багато програм Windows (зокрема
431 Notepad) додають таку позначку автоматично. Див. також
432 <http://en.wikipedia.org/wiki/Byte_order_mark>.
434 У Unix файли у кодуванні Unicode типово не містять позначки порядку
435 байтів. Вважається, що кодуванням текстових файлів є те кодування, яке
436 визначається поточною локаллю.
438 Програма dos2unix може визначити, чи є кодуванням файла UTF-16, лише
439 якщо у файлі міститься позначка порядку байтів. Якщо у файлі, де
440 використано кодування UTF-16, немає такої позначки, dos2unix вважатиме
441 такий файл двійковим (бінарним).
443 Для перетворення файлів UTF-16 без позначки порядку байтів скористайтеся
444 параметром "-ul" або "-ub".
446 Типово dos2unix не записує до файлів результатів перетворення позначки
447 порядку байтів (BOM). Якщо використано параметр "-b", dos2unix запише до
448 файла результатів BOM, якщо BOM була у файлі початкових даних.
450 Типово unix2dos записує позначку порядку байтів (BOM) до файла
451 результатів, якщо BOM є у початковому файлі. Скористайтеся параметром
452 "-r", щоб вилучити BOM.
454 Dos2unix та unix2dos завжди записують до файла результатів позначку
455 порядку байтів (BOM), якщо використано параметр "-m".
458 Перетворити дані з Windows UTF-16 (з позначкою порядку байтів (BOM)) у
461 dos2unix -n in.txt out.txt
463 Перетворити дані у форматі Windows UTF-16LE (без BOM) на дані у форматі
466 dos2unix -ul -n in.txt out.txt
468 Перетворити дані у кодуванні UTF-8 Unix на дані у кодуванні Windows
471 unix2dos -m -n in.txt out.txt
473 Перетворити дані у кодуванні UTF-8 Unix на дані у кодуванні Windows
476 unix2dos < in.txt | iconv -f UTF-8 -t UTF-16 > out.txt
479 Прочитати вхідні дані зі стандартного джерела (stdin) і записати
480 результат до стандартного виведення (stdout).
485 Перетворити дані у a.txt і замістити цей файл. Перетворити дані у b.txt
486 і замістити цей файл.
489 dos2unix -o a.txt b.txt
491 Перетворити дані у a.txt і замістити файл у режимі перетворення ascii.
495 Перетворити дані у a.txt і замістити файл у режимі перетворення ascii.
496 Перетворити дані у b.txt і замістити цей файл у режимі 7-бітового
499 dos2unix a.txt -c 7bit b.txt
500 dos2unix -c ascii a.txt -c 7bit b.txt
501 dos2unix -ascii a.txt -7 b.txt
503 Перетворити файл a.txt з формату Mac на формат Unix.
505 dos2unix -c mac a.txt
508 Перетворити файл a.txt з формату Unix на формат Mac.
510 unix2dos -c mac a.txt
513 Перетворити дані у a.txt, замістити цей файл і зберегти часову позначку
519 Перетворити дані у файлі a.txt і записати результати до файла e.txt.
521 dos2unix -n a.txt e.txt
523 Перетворити дані у файлі a.txt і записати результати до файла e.txt.
524 Скопіювати часову позначку файла a.txt для файла e.txt.
526 dos2unix -k -n a.txt e.txt
528 Перетворити дані у a.txt і замістити цей файл. Перетворити дані у b.txt
529 і записати результат до e.txt.
531 dos2unix a.txt -n b.txt e.txt
532 dos2unix -o a.txt -n b.txt e.txt
534 Перетворити дані у c.txt і записати результати до e.txt. Перетворити
535 дані у a.txt і замістити ними цей файл. Перетворити дані у b.txt і
536 замістити ними цей файл. Перетворити дані у d.txt і записати результати
539 dos2unix -n c.txt e.txt -o a.txt b.txt -n d.txt f.txt
541 РЕКУРСИВНЕ ПЕРЕТВОРЕННЯ
542 Для рекурсивного перетворення текстових файлів у ієрархії каталогів слід
543 використовувати dos2unix у поєднанні з програмами find(1) та xargs(1).
544 Наприклад, щоб виконати перетворення усіх файлів .txt у структурі
545 підкаталогів поточного каталогу, віддайте таку команду:
547 find . -name *.txt |xargs dos2unix
551 Основна мова визначається за допомогою змінної середовища LANG.
552 Значення змінної LANG складається з декількох частин. Перша частина
553 записується малими літерами і визначає код мови. Друга частина є
554 необов’язковою, визначає код країни і записується прописними
555 літерами, відокремлюється від першої частини символом
556 підкреслювання. Передбачено також необов’язкову третю частину:
557 кодування. Ця частина відокремлюється від другої частини крапкою.
558 Ось декілька прикладів для командних оболонок стандартного типу
561 export LANG=uk українська
562 export LANG=uk_UA українська, Україна
563 export LANG=ru_UA російська, Україна
564 export LANG=es_ES іспанська, Іспанія
565 export LANG=es_MX іспанська, Мексика
566 export LANG=en_US.iso88591 англійська, США, кодування Latin-1
567 export LANG=en_GB.UTF-8 англійська, Великобританія, кодування UTF-8
569 Повний список мов та кодів країн наведено у підручнику з gettext:
570 <http://www.gnu.org/software/gettext/manual/gettext.html#Language-Co
573 У системах Unix для отримання даних щодо локалі можна скористатися
577 За допомогою змінної середовища LANGUAGE ви можете вказати список
578 пріоритеності мов. Записи у списку слід відокремлювати двокрапками.
579 Програма dos2unix надає перевагу LANGUAGE над LANG. Наприклад, перша
580 голландська, далі німецька: "LANGUAGE=nl:de". Спочатку вам слід
581 увімкнути локалізацію, встановивши для змінної LANG (або LC_ALL)
582 значення, відмінне від «C». Далі ви зможете використовувати список
583 пріоритетності мов за допомогою змінної LANGUAGE. Додаткові
584 відомості можна знайти у підручнику з gettext:
585 <http://www.gnu.org/software/gettext/manual/gettext.html#The-LANGUAG
588 Якщо вами буде вибрано мову, перекладу якою немає, буде показано
589 стандартні повідомлення англійською мовою.
592 Змінну LOCALEDIR, встановлену під час збирання програми, можна
593 змінити за допомогою змінної середовища DOS2UNIX_LOCALEDIR.
594 LOCALEDIR використовується для пошуку файлів перекладів. Типовим
595 значенням у системах GNU є "/usr/local/share/locale". Переглянути
596 поточне значення змінної LOCALEDIR можна переглянути за допомогою
599 Приклад (командна оболонка POSIX):
601 export DOS2UNIX_LOCALEDIR=$HOME/share/locale
604 Якщо завдання вдасться успішно виконати, програма поверне нульовий код
605 виходу. Якщо станеться системна помилка, буде повернуто код цієї
606 помилки. Якщо станеться якась інша помилка, буде повернуто код 1.
608 У режимі без повідомлень повернутим значенням завжди буде нуль, якщо
609 вказано правильні параметри командного рядка.
612 <http://en.wikipedia.org/wiki/Text_file>
614 <http://uk.wikipedia.org/wiki/Carriage_return>
616 <http://uk.wikipedia.org/wiki/Newline>
618 <http://uk.wikipedia.org/wiki/Unicode>
621 Benjamin Lin - <blin@socs.uts.edu.au> Bernd Johannes Wuebben (режим
622 mac2unix) - <wuebben@kde.org>, Christian Wurll (додатковий новий рядок)
623 - <wurll@ira.uka.de>, Erwin Waterlander - <waterlan@xs4all.nl>
626 Сторінка проекту: <http://waterlan.home.xs4all.nl/dos2unix.html>
628 Сторінка на SourceForge: <http://sourceforge.net/projects/dos2unix/>
631 file(1) find(1) iconv(1) locale(1) xargs(1)