В связи с локализацией команд ответ Тима и Нормана Должен быть улучшен с использованием префикса «LANG = C», чтобы иметь возможность сопоставить шаблон «без новой строки» с каждой системой, имеющей какие-либо региональные параметры
Это обеспечивает окончание пустой строки для каждого файла, помещенного в командную строку этого скрипта:
#!/bin/sh -f
for i in $* ; do echo $i; \
if LANG=C diff /dev/null "$i" | tail -1 | \
grep '^\\ No newline' > /dev/null; then echo >> "$i"; \
fi; done
И этот скрипт обнаруживает отсутствующие файлы:
#!/bin/sh -f
for i in $* ; do \
if LANG=C diff /dev/null "$i" | tail -1 | \
grep '^\\ No newline' > /dev/null; then echo $i; \
fi; done