Подтвердить что ты не робот

Добавить отсутствующие строки в нескольких файлах

У меня есть набор неполных файлов: в последней строке отсутствует символ EOL.

Какой самый простой способ добавить новую строку, используя любой инструмент (awk, может быть?)?

4b9b3361

Ответ 1

Чтобы добавить новую строку в конце файла:

echo >>file

Чтобы добавить строку в конец каждого файла в текущем каталоге:

for x in *; do echo >>"$x"; done

Если вы не знаете заранее, заканчивается ли каждый файл в новой строке, сначала проверьте последний символ. tail -c 1 печатает последний символ файла. Так как подстановка команд усекает любую окончательную новую строку, $(tail -c 1 <file) пуст, если файл пуст или заканчивается в новой строке, и не пуст, если файл заканчивается символом новой строки.

for x in *; do if [ -n "$(tail -c 1 <"$x")" ]; then echo >>"$x"; fi; done

Ответ 2

Vim отлично подходит для этого, потому что если вы не откроете файл в режиме binary, он автоматически закончит файл с завершенной линией окончания.

Итак:

vim file -c 'wq'

должен работать, независимо от того, имеют ли ваши файлы стиль линии Unix, Windows или Mac.

Ответ 3

echo >> filename

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