How to give a pattern for new line in grep?
Solution 1:
try pcregrep
instead of regular grep
:
pcregrep -M "pattern1.*\n.*pattern2" filename
the -M
option allows it to match across multiple lines, so you can search for newlines as \n
.
Solution 2:
grep
patterns are matched against individual lines so there is no way for a pattern to match a newline found in the input.
However you can find empty lines like this:
grep '^$' file
grep '^[[:space:]]*$' file # include white spaces
Solution 3:
Thanks to @jarno I know about the -z option and I found out that when using GNU grep with the -P option, matching against \n
is possible. :)
Example:
grep -zoP 'foo\n\K.*'<<<$'foo\nbar'
Prints bar