2009-12-22 4 views
3

Все знают, что PHP ненавидит пустые строки в начале или конце файла (до или после тегов PHP).Найти все файлы с Blank или WS в BOF или EOF

У меня есть сценарий awk, который будет изменять файлы. Я передаю все свои файлы через него, и все персидское, не более ведущие или завершающие пустые строки.

Сначала я хотел бы найти файлы, чтобы создать быстрый отчет об исключениях.

Я пытался что-то вроде этого:

grep -r -e :a -e '/^\n*$/{$d;N;};/\n$/ba' 

Но это не так.

+0

Ваш «' grep'»команда, похоже, использует' sed' подобные конструкции (этикетки, ветви, наборы действий на матч картины). Я не думаю, что это сработает, если 'grep' будет заменен на' sed' либо, но я не совсем понимаю, что он пытается сделать в первую очередь. –

ответ

13

Этот скрипт будет проходить через все ваши файлы и печать, если он нашел пустую строку в начале или в конце каждого файла:

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 
+1

Это сделало трюк. Благодаря! – rbellamy

+0

Это помогло мне несколько раз - спасибо! – Tomba

+0

Где я должен разместить этот скрипт? Я запускаю cakePHP на веб-сервере Apache на Windows 7 64-битный профессионал. – vaanipala

 Смежные вопросы

  • Нет связанных вопросов^_^