У мене є файли в підкаталогах поточного каталогу, які можуть мати або не мати нових рядків в кінці; як я можу знайти файли, у яких в кінці немає нового рядка?
Я спробував це:
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", додається новий рядок. Оскільки це єдине, що друкує команда awk, її можна замінити на: printf '\n'
(без жодного ментіно $ файла) і зробити те саме. Я думаю, що це НЕ, на що ти прагнув (тобто: надрукувати останній рядок файлу?)
c
і так робить FreeBSD, але я не помітив , що це документовано як залежна від реалізації: gnu.org/software/gawk/manual / ... . Так що це станеться , але не завжди.