J'ai des fichiers dans les sous-répertoires du répertoire courant qui peuvent ou non avoir de nouvelles lignes à la fin; comment puis-je trouver des fichiers qui n'ont pas de nouvelle ligne à la fin?
J'ai essayé ça:
find . -name '*.styl' | while read file; do
awk 'END{print}' $file | grep -E '^$' > /dev/null || echo $file;
done
mais ça ne marche pas. awk 'END{print}' $file
imprime la ligne avant une nouvelle ligne vide, identique à tail -n 1 $file
.
awk 'END{print}' $file
: ceci ignore totalement le contenu de $ file, et après avoir terminé l'analyse de tous les fichiers contenus dans "$ file", il ajoute une nouvelle ligne. Comme c'est la seule chose que la commande awk imprime, elle pourrait être remplacée par: printf '\n'
(sans aucun mentino de $ file) et faire la même chose. Je pense que ce n'est PAS ce que vous visiez (c'est-à-dire: imprimer la dernière ligne du fichier?)
c
et FreeBSD aussi, mais je n'avais pas remarqué qu'il était documenté comme dépendant de l'implémentation: gnu.org/software/gawk/manual/… . Donc , il ne se produit mais pas toujours.