Mam pliki w podkatalogach bieżącego katalogu, które mogą, ale nie muszą mieć nowych linii na końcu; jak mogę znaleźć pliki, które nie mają nowej linii na końcu?
Próbowałem tego:
find . -name '*.styl' | while read file; do
awk 'END{print}' $file | grep -E '^$' > /dev/null || echo $file;
done
ale to nie działa. awk 'END{print}' $filewypisuje linię przed pustą nową linią, taką samą jak tail -n 1 $file.
awk 'END{print}' $file : ignoruje to całkowicie zawartość pliku $, a po zakończeniu analizy wszystkich plików zawartych w pliku „$ plik” dodaje nowy wiersz. Ponieważ jest to jedyna rzecz, którą wypisuje polecenie awk, można go zastąpić: printf '\n'(bez żadnego mentino pliku $) i zrobić to samo. Myślę, że to nie było to, do czego dążyłeś (tj. Wydrukować ostatni wiersz pliku?)
cpodobnie jak FreeBSD, ale nie zauważyłem, że jest to udokumentowane jako zależne od implementacji: gnu.org/software/gawk/manual/… . Więc to nie zdarzy, ale nie zawsze.