21

I would like to grep for an occurrence in a text file, then print the following N lines after each occurrence found. Any ideas?

30

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.

| improve this answer | |
7

If you have GNU grep, it's the -A/--after-context option. Otherwise, you can do it with awk.

awk '/regex/ {p = N}
     p > 0   {print $0; p--}' filename
| improve this answer | |
  • 1
    awk '/regex/{p=2} p > 0 {print $0; p--}' filename - works, yours not. – BladeMight Mar 3 '19 at 12:25
5

Print N lines after matching lines

You can use grep with -A n option to print N lines after matching lines.

For example:

$ 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

Using -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

Using -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
| improve this answer | |
4

Use the -A argument to grep to specify how many lines beyond the match to output.

| improve this answer | |
  • And use -B n to grep lines before the match. – kintsukuroi Apr 22 at 22:53
  • And -C in grep to add lines both above and below the match! – kintsukuroi Apr 22 at 22:55

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.