Find all files with Blank or WS at BOF or EOF

2020-02-02 02:07发布

问题:

Everyone knows PHP hates blank lines at the beginning or end of a file (before or after the PHP tags).

I've got an awk script that will modify the files. I pass all my files through it and things are peachy, no more leading or trailing blank lines.

I'd like to FIND the files first, to build a quick exception report.

I tried something like this:

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

But that's wrong.

回答1:

This shell script will go through all your files and print if it found a blank line at the beginning or end of each file:

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

I broke the lines for readability, but you can run it as a one liner too.

example output:

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


标签: php shell sed grep