Гид по технологиям

dos2unix и unix2dos — конвертация переносов строк

4 min read Системное администрирование Обновлено 08 Jan 2026
dos2unix и unix2dos — конвертация переносов строк
dos2unix и unix2dos — конвертация переносов строк

Печатная машинка на столе — иллюстрация переносов строк

Что такое переносы строк и почему это важно

Компьютерные системы по-разному отмечают конец строки. Исторически в электромеханических терминалах были две команды: возврат каретки и перевод строки. Сегодня это отражается в трёх форматах:

  • LF — «line feed», символ \n. Стандарт Unix и Linux.
  • CRLF — «carriage return + line feed», символы \r\n. Стандарт Windows и MS‑DOS.
  • CR — «carriage return», символ \r. Устаревший формат классических macOS (до Mac OS X).

Если файл с одним форматом открыть в системе, которая ожидает другой формат, строки могут отображаться некорректно. Скрипты и интерпретаторы могут выдавать ошибки из‑за лишних \r символов.

Важно: перед массовой конвертацией делайте резервную копию. Конвертация бинарных файлов и файлов с UTF‑16 может повредить данные.

Как быстро определить формат файла

Используйте эти команды в терминале:

file имя_файла
od -c имя_файла | head
cat -v имя_файла | sed -n '1,5p'
  • file часто укажет “with CRLF line terminators” для Windows‑файлов.
  • od покажет управляющие символы: \r как “\r” и \n как “\n”.
  • cat -v покажет ^M для \r.

Утилиты dos2unix и unix2dos

Страница руководства dos2unix в терминале

Утилита dos2unix конвертирует файлы из формата DOS/Windows (CRLF) в Unix (LF). unix2dos делает обратное.

  • Конвертация файла на месте:
dos2unix file
  • Конвертация с записью в новый файл:
dos2unix -n file1 file2

Аналогично для unix2dos:

unix2dos file
unix2dos -n file1 file2

Если утилит нет в системе, установите её через менеджер пакетов вашей ОС, например:

  • Debian/Ubuntu: sudo apt install dos2unix
  • RHEL/CentOS/Fedora: sudo dnf install dos2unix или sudo yum install dos2unix
  • Arch: sudo pacman -S dos2unix
  • macOS (Homebrew): brew install dos2unix

В Windows можно использовать WSL, MSYS2, Cygwin или редакторы вроде Notepad++/VS Code.

Мини‑методология: безопасная конвертация

  1. Определите формат файла (см. выше).
  2. Сделайте резервную копию: cp file file.bak.
  3. Конвертируйте копию: dos2unix -n file.bak file или unix2dos -n file.bak file.
  4. Протестируйте скрипты/программы.
  5. Внесите изменения в процесс CI/CD, если нужно автоматизировать проверку.

Шпаргалка (cheat sheet)

  • Быстрая проверка: file file.txt
  • Показать не‑печатаемые символы: cat -v file.txt
  • Конвертировать на месте: dos2unix file.txt
  • Конвертировать в новый файл: dos2unix -n in.txt out.txt
  • Тот же принцип для unix2dos.

Альтернативные подходы

  • Текстовый редактор: большинство современных редакторов (VS Code, Sublime, Notepad++) умеют распознавать и менять окончания строк вручную.
  • Скрипты: для массовой обработки можно использовать awk/sed/perl/python, если нужен тонкий контроль над кодировкой.
  • Git: настройка core.autocrlf помогает при обмене репозиториями между Windows и Unix.

Когда конвертация не сработает или вредна

  • Файлы в UTF‑16/UTF‑32 часто содержат байты, которые будут искажены при простом преобразовании конца строки.
  • Бинарные файлы и изображения нельзя конвертировать таким способом.
  • Старые Mac‑форматы с одиночным CR встречаются редко, но требуют специальных инструментов.

Сравнение подходов

ПодходПлюсыМинусы
dos2unix/unix2dosБыстро, простая команда, сохранение прав доступаМогут сломать файлы с другой кодировкой
РедакторГрафический контроль, выбор кодировкиРучной процесс для многих файлов
Скрипты (perl/python)Высокая гибкость, автоматизацияТребует знаний и тестирования

Роли и чек‑лист

  • Разработчик:
    • Проверить формат перед запуском скрипта.
    • Добавить проверку в CI.
  • Системный администратор:
    • Автоматизировать конвертацию при обмене файлами между системами.
  • Технический писатель / контент‑менеджер:
    • Хранить копии исходных файлов и выбирать единый формат для публикации.

Быстрый ментальный образ

Представьте печатную машинку: возврат каретки (CR) возвращает каретку в начало строки, а перевод строки (LF) опускает ленту на одну строку. В Unix используют только «опускание ленты» (LF). Windows делает и то, и другое (CRLF).

1‑строчный глоссарий

  • LF: “\n”, конец строки в Unix.
  • CRLF: “\r\n”, конец строки в Windows.
  • CR: “\r”, старый формат Mac.

Короткая памятка безопасности

  • Всегда делайте резервные копии.
  • Не применяйте dos2unix к бинарным или UTF‑16 файлам.
  • Тестируйте после конвертации.

Итог

Dos2unix и unix2dos — надёжный и простой инструмент для приведения переносов строк к нужному формату. Выясните текущий формат, сделайте бекап, выполните конвертацию и прогон тестов. Для интеграции в рабочие процессы используйте редакторы, скрипты или настройку Git в дополнение к этим утилитам.

Краткие рекомендации: резервная копия, проверка формата, однократная конвертация и автоматизация в CI при необходимости.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

RDP: полный гид по настройке и безопасности
Инфраструктура

RDP: полный гид по настройке и безопасности

Android как клавиатура и трекпад для Windows
Гайды

Android как клавиатура и трекпад для Windows

Советы и приёмы для работы с PDF
Документы

Советы и приёмы для работы с PDF

Calibration в Lightroom Classic: как и когда использовать
Фото

Calibration в Lightroom Classic: как и когда использовать

Отключить Siri Suggestions на iPhone
iOS

Отключить Siri Suggestions на iPhone

Рисование таблиц в Microsoft Word — руководство
Office

Рисование таблиц в Microsoft Word — руководство