Вы когда-нибудь отправляли кому-нибудь текстовый файл, созданный в системе Linux, и заставляли его жаловаться, что он выглядит неправильно в macOS или Windows? Это может быть связано с тем, что эти системы по-разному обрабатывают окончания строк. К счастью, это легко исправить с помощью пары утилит: Dos2Unix и Unix2Dos.
Что делать с окончаниями строк?
Одно из различий между Windows и Linux, которое может затруднить обмен файлами, - это способ подсчета окончаний строк. Это восходит к тем временам, когда компьютеры использовали телетайпы для ввода и вывода, которые фактически были автоматическими пишущими машинками.
Перевод строки, также называемый переводом строки, продвигает бумагу на одну строку, а возврат каретки перемещается в начало строки. Интерфейсы командной строки поддерживают это соглашение об интерпретации символов новой строки.
Windows унаследовала соглашение MS-DOS о подсчете новой строки и возврата каретки как одной строки, в то время как Linux, в свою очередь, сохранил традицию Unix просто подсчитывать новые строки как новые строки.
В большинстве случаев текстовые редакторы достаточно умны, чтобы обнаруживать файлы, созданные в разных системах, и соответствующим образом настраивать отображение, но вы все равно можете время от времени сталкиваться с проблемами. Вы можете попытаться запустить сценарий, и интерпретатор может выдать ошибку, потому что он ожидает, что строки будут заканчиваться по-другому.
Использование Dos2Unix и Unix2Dos
К счастью, есть несколько утилит, которые позволяют конвертировать окончания строк в файлах между форматами. Они называются Dos2Unix и Unix2Dos.
Хотя эти утилиты распространены во многих установках Linux, если они не установлены в вашей системе, вы можете загрузить их с помощью диспетчера пакетов по умолчанию.
Чтобы преобразовать файл, созданный в системе Windows, в Linux, используйте dos2unix:
файл dos2unix
...где файл - это имя файла, который вы хотите преобразовать. Эта программа преобразует файл из новых строк DOS в символы Unix на месте, как следует из названия. Если вы хотите преобразовать копию файла, используйте -n вариант:
dos2unix -n файл1 файл2
...где file1 а также файл2 имена исходный файл и выходной файл. Команда unix2dos работает так же и принимает те же аргументы.
Альтернативный вариант - использовать текстовый редактор на Linux или Windows для преобразования файлов, так как они также могут определять и изменять поведение окончания строки.
Связанный: Unix vs. Linux: разница между ними и почему это важно
Теперь ваши текстовые файлы выглядят правильно в любой системе
С помощью этой пары утилит вы можете убедиться, что любой текстовый файл будет работать как в Windows, так и в Linux. Исправлять символы новой строки теперь проще, чем когда-либо, с помощью dos2unix и unix2dos.
В реальном мире пользователям Linux и Windows часто нужно обмениваться файлами. К счастью, в наши дни это сделать очень просто.
Переходите с Windows на Linux и вам нужно скопировать данные? Используйте эти приемы для передачи файлов или обмена ими из Windows в Linux.
Читать далее
- Linux
- MS-DOS
- Unix
![](/f/acc3fcfeb7f99a7933db257018f46f8a.jpg)
Дэвид - писатель-фрилансер, живущий на северо-западе Тихого океана, но родом из района Залива. Он был энтузиастом технологий с детства. Интересы Дэвида включают чтение, просмотр качественных телешоу и фильмов, ретро-игры и коллекционирование пластинок.
Подписывайтесь на нашу новостную рассылку
Подпишитесь на нашу рассылку, чтобы получать технические советы, обзоры, бесплатные электронные книги и эксклюзивные предложения!
Еще один шаг…!
Пожалуйста, подтвердите свой адрес электронной почты в электронном письме, которое мы вам только что отправили.