Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

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

share|improve this question
add comment

3 Answers

up vote 9 down vote accepted

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.

share|improve this answer
add comment

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
share|improve this answer
add comment

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

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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