I would like to grep for an occurrence in a text file, then print the following N lines after each occurrence found. Any ideas?
Grep has the following options that will let you do this (and things like it). You may want to take a look at the man page for more information:
-A num Print num lines of trailing context after each match. See also the -B and -C options.
-B num Print num lines of leading context before each match. See also the -A and -C options.
-C[num] Print num lines of leading and trailing context surrounding each match. The default is 2 and is equivalent to -A 2 -B 2. Note: no whitespace may be given between the option and its argument.
Print N lines after matching lines
You can use
-A n option to print N lines after matching lines.
$ cat mytext.txt Line1 Line2 Line3 Line4 Line5 Line6 Line7 Line8 Line9 Line10 $ grep -wns Line5 mytext.txt -A 2 5:Line5 6-Line6 7-Line7
Other related options:
Print N lines before matching lines
-B n option you can print N lines before matching lines.
$ grep -wns Line5 mytext.txt -B 2 3-Line3 4-Line4 5:Line5
Print N lines before and after matching lines
-C n option you can print N lines before and after matching lines.
$ grep -wns Line5 mytext.txt -C 2 3-Line3 4-Line4 5:Line5 6-Line6 7-Line7