grep: show lines surrounding each match

command-line-interface, grep, logging, search

Solution

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.

Problem

How do I `grep` and show the preceding and following 5 lines surrounding each matched line?

Original source