Lexicon
Lexicon

Reputation: 2627

Grep group of lines

I'd like to traverse a text file a pull out groups of lines at a time. In the example below, I'd like to grep all lines below AAA but stop at bbb (ie all of the 'xxx')

Thanks

example:

-------AAA-------
xxx
xxx
xxx
xxx
xxx
-------bbb--------
yyy
yyy
yyy
yyy
------AAA---------
xxx
xxx
xxx
xxx
------bbb--------
yyy

Upvotes: 1

Views: 1452

Answers (1)

kurumi
kurumi

Reputation: 25599

if you don't care about inclusion of AAA and bbb lines, this should suffice for your example

$ awk '/AAA/,/bbb/' file

if you don't want AAA and bbb lines

$ awk '/bbb/{f=0}/AAA/{f=1;next}f{print}' file

Alternatively, if you have Ruby(1.9+)

$ ruby -0777 -ne 'puts $_.scan(/-+AAA-+(.*?)-+bbb-+/m) ' file

Upvotes: 3

Related Questions