Good days. I have a problem. I have that get the lines that has a content specified. The command grep
allow search a content specified of a file, but this line by line. I would like to select a content of various lines.
How to do this?
something as
cat -n /etc/profile | grep "
if [ "$DISPLAY" != "" ]
then
xhost si:localuser:root
fi
"
Thank you very much.
CodePudding user response:
Suggesting to research grep
with option -z
.
But better option is awk
.
With awk
it is possible to select a range awk '/RegExp1/,/RegExp2/' input.txt
In your case:
awk '/if/,/fi/{print}' input.txt
Will print all lines in if
fi
range.
Also With awk
it is possible to define record separator with RS
variable. For example record separator is empty line. awk '1' RS="\n\n"