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}' $file
wypisuje 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?)
c
podobnie 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.