Re: Return second line after a pattern match?

From: scriptOmatic (ScriptOmatic_at_ChironComputing.Com)
Date: 07/29/03


Date: Tue, 29 Jul 2003 19:33:06 GMT

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

-- 
http://ftp.opensysmon.com is a shell script archive site with an
open source system monitoring and network monitoring software package.
Many platforms are supplied already compiled.