Eu tenho arquivos em subdiretórios do diretório atual que podem ou não ter novas linhas no final; como posso encontrar arquivos que não possuem uma nova linha no final?
Eu tentei isso:
find . -name '*.styl' | while read file; do
awk 'END{print}' $file | grep -E '^$' > /dev/null || echo $file;
done
mas não funciona. awk 'END{print}' $file
imprime a linha antes de uma nova linha vazia, igual a tail -n 1 $file
.
awk 'END{print}' $file
: isso ignora totalmente o conteúdo do arquivo $ e, após terminar de analisar todos os arquivos contidos em "$ arquivo", ele adiciona uma nova linha. Como é a única coisa que o comando awk imprime, ele pode ser substituído por: printf '\n'
(sem nenhum mentino de $ file) e fazer a mesma coisa. Eu acho que não é isso que você estava com o objetivo de: (isto é imprimir a última linha do arquivo?)
c
e o FreeBSD também, mas eu não percebi que ele está documentado como dependente da implementação: gnu.org/software/gawk/manual/… . Por isso não acontecer, mas nem sempre.