grep a file, but show several surrounding lines?

Mark Harrison picture Mark Harrison · Aug 12, 2008 · Viewed 1.1M times · Source

I would like to grep for a string, but also show the preceding five lines and the following five lines as well as the matched line. How would I be able to do this?

Answer

Pat Notz picture Pat Notz · Aug 12, 2008

For BSD or GNU grep you can use -B num to set how many lines before the match and -A num for the number of lines after the match.

grep -B 3 -A 2 foo README.txt

If you want the same number of lines before and after you can use -C num.

grep -C 3 foo README.txt

This will show 3 lines before and 3 lines after.