[CentOS] grep

mike.redan at bell.ca mike.redan at bell.ca
Tue Aug 28 14:14:37 UTC 2007


> 
> Not a CentOS specific question, although I am running grep on 
> CentOS 4.3
> but how would you grep out a series of lines in a file starting at a
> specific point.  For instance, if I have a file named foo and 
> I want to
> grep out the next 5 lines after the first and only instance of the
> string "bar" how could I pull that off?  Thanks so much.
> 

"man grep" is your friend here

Quoting (cause they explain it better than I):
OPTIONS
       -A NUM, --after-context=NUM
              Print NUM  lines  of  trailing  context  after  matching
lines.
              Places  a  line  containing  --  between  contiguous
groups  of
              matches.

.
.
.
.
       -m NUM, --max-count=NUM
              Stop reading a file after NUM matching lines.  If the
input  is
              standard  input  from a regular file, and NUM matching
lines are
              output, grep ensures that the standard input  is
positioned  to
              just  after the last matching line before exiting,
regardless of
              the presence of trailing context lines.  This enables a
calling
              process  to resume a search.  When grep stops after NUM
matching
              lines, it outputs any trailing context lines.  When  the
-c  or
              --count  option  is  also  used,  grep  does  not output a
count
              greater than NUM.  When the -v or --invert-match option is
also
              used, grep stops after outputting NUM non-matching lines.



So your command would look something like this:

grep -m1 -A5 bar foo


This does not handle your case of "first and only" instance however. It
will stop after the first instance of the word bar.



More information about the CentOS mailing list