View Single Post

   
  #2 (permalink)  
Old 01-04-2008, 07:59 PM
Alain Deschamps
 
Posts: n/a
Default 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



Reply With Quote