Как известно, перевод строки в текстовых файлах может быть представлен различными символами, из которых сами популярные варианты это:

  • LF (Unix)
  • CR+LF (Windows)

Более подробное описание и историю можно почитать, например, в Википедии. С практической же точки зрения эти различия приводят к тому, что файлы могут интерпретироваться неправильно при переносе между платформами. Например, так выглядит текстовый файл с юниксовыми переводами строк в Блокноте Windows:

Текстовый файл с переводами строки Unix (LF) в Блокноте Windows

Проблема актуальна для всех видов текстовых файлов – как обычных TXT, так и программного кода C, HTML, PHP и т.д.

Разовую замену переводов строк в небольшом числе файле можно сделать, например, в программе Notepad++.

При большом количестве текстовых файлов и при необходимости обработки в командной строке удобно использовать бесплатную программу nhrt, которая может заменить переводы строк в командной строке и bat файле, при этом предназначена для использования в командной строке и пакетных файлах, а также поддерживает маски файлов и подкаталоги.

Замена переводов строки Unix на Windows

Для этого преобразования необходимо задать замену символа LF на последовательность CR LF командой:

nhrt -set:"\n" -et:"\r\n" NEWS.txt

После выполнения команды обновлённый файл NEWS.txt нормально открывается в Блокноте Windows:

Текстовый файл с преобразованными переводами строк Windows в Блокноте Windows
Команда для замены LF на CR LF для всех PHP файлов, включая подкаталоги:

nhrt -set:"\n" -et:"\r\n" -r *.php

Замена переводов строки Windows на Unix

Для этого преобразования необходимо задать замену последовательности CR LF на символ LF командой:

nhrt -set:"\n" -et:"\r\n" NEWS.txt

Команда для замены CR LF на LF для всех PHP файлов, включая подкаталоги:

nhrt -set:"\n" -et:"\r\n" -r *.php

Узнать больше

Скачать nhrt

Параметр -set, -searchescapetext задает поиск простого текста (plain text) с поддержкой escape последовательностей.

Параметр -et, -escapetext задает заменяющий текст с поддержкой escape последовательностей.

Справка nhrt

Замена переводов строк в командной строке
Метки:     

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *