Ich habe Dateien in Unterverzeichnissen des aktuellen Verzeichnisses, die am Ende möglicherweise neue Zeilen enthalten oder nicht. Wie finde ich Dateien, die am Ende keinen Zeilenumbruch haben?
Ich habe das versucht:
find . -name '*.styl' | while read file; do
awk 'END{print}' $file | grep -E '^$' > /dev/null || echo $file;
done
aber es funktioniert nicht. awk 'END{print}' $file
druckt die Zeile vor einer leeren neuen Zeile, genau wie tail -n 1 $file
.
awk 'END{print}' $file
: Dies ignoriert den Inhalt von $ file vollständig und fügt nach Abschluss des Parsens aller in "$ file" enthaltenen Dateien eine neue Zeile hinzu. Da es das einzige ist, was der Befehl awk druckt, kann er durch printf '\n'
Folgendes ersetzt werden (ohne Mentino von $ file überhaupt) und dasselbe tun. Ich denke, das ist NICHT das, was Sie angestrebt haben (dh: die letzte Zeile der Datei drucken?)
c
und FreeBSD auch, aber ich hatte nicht bemerkt, dass es als implementierungsabhängig dokumentiert ist: gnu.org/software/gawk/manual/… . So kommt es aber nicht immer vor.