У меня есть огромное количество исходных файлов, которые все испытывают недостаток в новой строке в конце.
Как я автоматически добавляю новую строку в конец каждого из них?
У некоторых может уже быть новая строка, таким образом, она должна только быть добавлена при необходимости.
Я, вероятно, не ищу код, по сути, но просто что-то, что я могу выполнить в Терминале для добавления необходимых новых строк (или некоторое программирование или средство разработки).
Если у вас есть доступ к инструментам Unix, вы можете запустить diff
, чтобы узнать, в каких файлах не хватает новой строки, а затем добавить ее:
#!/bin/sh
for i
do
if diff /dev/null "$i" | tail -1 | grep '^\\ No newline' > /dev/null
then
echo >> "$i"
fi
done
Я полагаюсь на diff
, который выдаст сообщение с \
в первой колонке, tail
, который даст мне последнюю строку вывода diff
, и grep
, который скажет мне, является ли последняя строка сообщением, которое я ищу. Если все это работает, то echo
выдает новую строку, а >>
добавляет ее в файл "$i"
. Кавычки вокруг "$i"
гарантируют, что все будет работать, если в имени файла есть пробелы.