Re: Return second line after a pattern match? On Tue, 29 Jul 2003 19:33:06 GMT, scriptOmatic
<ScriptOmatic@ChironComputing.Com> wrote:
>Ritchie wrote:
>>
>> I'm stuck trying to figure this out. Say I have a file with the
>> results of a command (lets say: svmon -Put 10) which shows the top 10
>> usage processes. Each of the returned 10 records in the file is
>> separated by dashes "-----------". How would you guys code a command
>> which returns the 2nd line after you encounter and match the line of
>> dashes? Matching the dashes isn't difficult but I can't figure out
>> how to get the 2nd line after each match.
>>
>> Thanks - Ritchie
>
>is this what you want?
>find the "----------" line and skip it
>fine the 1st line after it and skip it
>find the 2nd line after it and print it
>skip all other lines
>
>
>
>use nawk
>
>BEGIN { cnt = 0 ; }
>
>/.*----------.*/ { cnt = 1; next; }
>cnt == 1 { cnt ++; next; }
>cnt == 2 { print; cnt ++; } # print 2nd line past "----"
># ignore all other lines
To get *every* 2nd lines after each dashes lines you can use :
awk '/.*----------.*/ { getline; getline, print }'
AD |