Найти все файлы с пустым или WS на BOF или EOF
Всем известно, что PHP ненавидит пустые строки в начале или конце файла (до или после тегов PHP).
У меня есть awk
скрипт, который будет изменять файлы. Я передаю все свои файлы через него, и все становится персиковым, больше никаких ведущих или конечных пустых строк.
Я хотел бы сначала найти файлы, чтобы создать быстрый отчет об исключениях.
Я попробовал что-то вроде этого:
grep -r -e :a -e '/^\n*$/{$d;N;};/\n$/ba'
Но это не так.
1 ответ
Решение
Этот сценарий оболочки будет проходить через все ваши файлы и печатать, если он обнаружит пустую строку в начале или конце каждого файла:
for f in `find . -type f`; do
for t in head tail; do
$t -1 $f |egrep '^[ ]*$' >/dev/null && echo "blank line at the $t of $f";
done;
done
Я разбил строки для читабельности, но вы можете запустить его как один лайнер тоже.
пример вывода:
blank line at the head of ./b
blank line at the tail of ./c
blank line at the head of ./d
blank line at the tail of ./d