У меня есть файлы в подкаталогах текущего каталога, которые могут иметь или не иметь новые строки в конце; Как мне найти файлы, в конце которых нет новой строки?
Я пробовал это:
find . -name '*.styl' | while read file; do
awk 'END{print}' $file | grep -E '^$' > /dev/null || echo $file;
done
но это не работает awk 'END{print}' $file
печатает строку перед пустой новой строкой, так же, как tail -n 1 $file
.
awk 'END{print}' $file
: это полностью игнорирует содержимое $ file, и после окончания анализа всех файлов, содержащихся в $ file, добавляет новую строку. Поскольку это единственная вещь, которую печатает команда awk, ее можно заменить на: printf '\n'
(без ментино $ file вообще) и сделать то же самое. Я думаю, что это НЕ то, к чему вы стремились (то есть: напечатать последнюю строку файла?)
c
и FreeBSD, но я не заметил, что это задокументировано как зависящее от реализации: gnu.org/software/gawk/manual/… . Так что это произойдет , но не всегда.