So I have a space/new line after a closing ?>
(php tag) that is breaking my application.
How can I find it easily I have 1000 of files and 100000 lines of code in this app.
Ideally im after some regex combined with find grep to run on a unix box.
The problem here is normal grep doesn't match multiple lines. So, I would install pcregrep
and try the following command:
pcregrep -rMl '\?>[\s\n]+\z' *
This will match all files in the folder and subfolders (the -r
part) using PCRE multiline match (the -M
part), and only list their filenames (the -l
part).
As for the pattern, well that matches ?>
followed by 1 or more whitespace or newline characters, followed by the end of the file \z
. I found though, when I ran this on my folder, many of the PHP files do in fact end with a single newline. So you can update that regex to be '\?>[\s\n]+\n\z'
to match files with whitespace over and above the single \n
character terminator.
Lastly, you can always use od -c filename
to print unambiguous representation of the file if you need to check its exact character sequence ending.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With