in reply to get n lines before or after a pattern
Here's another option:
use Modern::Perl; my $searchFor = 'jack'; local $/ = 'id '; while (<DATA>) { next if !/\nname\s+\b$searchFor\b/; say 'id ', join "\n", ( split "\n" )[ 0, 1, 2, 5 ]; } __DATA__ start id 10 address Richmond name jack xxxxx aaaaa lastname black yyyy zzzzz id 11 address Central name rick cccccc dddddd lastname hanna eeeee yyyyy id 12 address denver name jack sssss tttttt lastname strong rrrrr mmmmm id 13 address Virginia name mick aaaaaaa ooooooo lastname jagger gggggg hhhhhh id 14 address Maine name rick sssss sssss lastname stewart ssssss ffffff end
Output:
id 10 address Richmond name jack lastname black id 12 address denver name jack lastname strong
Hope this helps!
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: get n lines before or after a pattern
by johngg (Canon) on Jul 25, 2012 at 23:54 UTC | |
by Kenosis (Priest) on Jul 26, 2012 at 03:41 UTC |