Найти все файлы с пустым или 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
Другие вопросы по тегам