Простое исправление для файлов, которые «пропускают» перевод строки в конце файла, просто sed; Следующее исправляет файл «на месте» (используя опцию «-i»):
find . -type f -exec sed -i -e '$a\' {} \; -print
Объяснение: найти все файлы (-type f
), запустить sed
, изменить файлы на месте (-i
), используя следующий (-e
) скрипт / выражение, которое соответствует концу файла ($
) и выполните действие «добавить» (a\
), но на самом деле не указывайте текст для добавления (ничего после \
), который добавит новую строку в конец файла , но только если он отсутствует. Печатает все найденные файлы (фиксированные или нет), что, вероятно, не нужно.
Основная оговорка заключается в том, что функции sed
различаются для разных платформ, поэтому -i
и -e
могут поддерживаться или не поддерживаться / одинаковы; например более ранние версии Unix или MacOS могут требовать немного другого синтаксиса.