Sponsored Content
Top Forums Shell Programming and Scripting AIX equivalent to GNU grep's -B and -A [print lines after or before matching lines] Post 302417069 by ahmad.diab on Wednesday 28th of April 2010 11:52:36 AM
Old 04-28-2010
Using PERL -s option will allow you to emulate the GNU grep function as below:-

cat perlgrep

Code:
#!/bin/perl -s -wln 

our ( $A , $B , $pattern ) ;

        BEGIN{
                defined $A or $A=0 ; defined $B or $B=0 ; defined $pattern or warn "Pattern Not Exists, kindly insert Pattern $!;" and exit 255 ;
        }

                        $FLINE{$.}=$_ ;

                        /$pattern/ and   $match=$. ;

        END{

                         $b = $match - $B ;
                         $a = $match + $A ;

                while ( $b < $match) {
                        print $FLINE{$b} ;
                        $b++ ;
                }

                print $FLINE{$match} ;

                while ( $a > $match ) {
                        print $FLINE{++$match};

                }
        }

in command user prompt write the below:-
Code:
bash-3.00$ chmod u+x perlgrep
bash-3.00$ perlgrep -A=2 -B=4 -pattern='FATAL|QUEUE|SIGHUP' infile.txt

SmilieSmilieSmilieSmilieSmilieSmilie

Last edited by ahmad.diab; 04-28-2010 at 12:58 PM..
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

I want to print next 3 lines after pattern matching.

Dear Experts, I have file called file1 in which i am greping a pattern after that i want to next 3 lines when that pattern is matched. Ex:- file1 USA UK India Africa Hello Asia Europe Australia Hello Peter Robert Jo i want to next 3 lines after matching Hello... (12 Replies)
Discussion started by: naree
12 Replies

2. Shell Programming and Scripting

How to print file without few exactly matching lines?

Hi I have a very long file with 4 columns of numbers for example 1875 1876 12725 12723 13785 13786 4232 4230 13184 13185 ... (2 Replies)
Discussion started by: ananyob
2 Replies

3. Shell Programming and Scripting

Print lines between two lines after grep for a text string

I have several very large file that are extracts from Oracle tables. These files are formatted in XML type syntax with multiple entries like: <ROW> some information more information </ROW> I want to grep for some words, then print all lines between <ROW> AND </ROW>. Can this be done with AWK?... (7 Replies)
Discussion started by: jbruce
7 Replies

4. Shell Programming and Scripting

Perl XML, find matching condition and grep lines and put the lines somewhere else

Hi, my xml files looks something like this <Instance Name="New York"> <Description></Description> <Instance Name="A"> <Description></Description> <PropertyValue Key="false" Name="Building A" /> </Instance> <Instance Name="B"> ... (4 Replies)
Discussion started by: tententen
4 Replies

5. Shell Programming and Scripting

Print matching lines in a file

Hello everyone, I have a little script below: die "Usage infile outfile reGex" if @ARGV != 3; ($regex) = @ARGV; open(F,$ARGV) or die "Can't open"; open(FOUT,"+>$ARGV") or die "Can't open"; while (<F>) { print FOUT if /$regex/.../$regex/; } No matter what I give $regex on the... (2 Replies)
Discussion started by: new bie
2 Replies

6. Shell Programming and Scripting

print lines between 2 matching patterns

Hi Guys, I have file like below, I want to print all lines between test1231233 to its 10 occurrence(till line 41) test1231233 qwe qwe qweq123 test1231233 qwe qwe qweq23 test1231233 qwe qwe qweq123 test1231233 qwe qwe qweq123131 (3 Replies)
Discussion started by: jagnikam
3 Replies

7. Shell Programming and Scripting

How to print all the lines after pattern matching?

I have a file that contains... Number -------------------- 1 2 3 4 i want to print all the numbers after the hyphen ... (6 Replies)
Discussion started by: ankitknit
6 Replies

8. Shell Programming and Scripting

Compare file1 for matching line in file2 and print the difference in matching lines

Hello, I have two files file 1 and file 2 each having result of a query on certain database tables and need to compare for Col1 in file1 with Col3 in file2, compare Col2 with Col4 and output the value of Col1 from File1 which is a) not present in Col3 of File2 b) value of Col2 is different from... (2 Replies)
Discussion started by: RasB15
2 Replies

9. Shell Programming and Scripting

How to print few lines before and after matching word is found suing grep?

Hi, here are few lines present in the logs. I want to grep on Error and print few lines before and after Error word is found line1 Line2 Line3 Error Line4 Line5 Line6 Line7 I want the output to be Line2 Line3 Error Line5 (1 Reply)
Discussion started by: arghadeep adity
1 Replies

10. Shell Programming and Scripting

Print lines after matching two pattern

would like to print everything after matching two patterns AAA and BBB. output : CCC ZZZ sample data : AAA BBB CCC ZZZ (4 Replies)
Discussion started by: jhonnyrip
4 Replies
Mojolicious::Routes::Pattern(3pm)			User Contributed Perl Documentation			 Mojolicious::Routes::Pattern(3pm)

NAME
Mojolicious::Routes::Pattern - Routes pattern engine SYNOPSIS
use Mojolicious::Routes::Pattern; # Create pattern my $pattern = Mojolicious::Routes::Pattern->new('/test/:name'); # Match routes my $result = $pattern->match('/test/sebastian'); say $result->{name}; DESCRIPTION
Mojolicious::Routes::Pattern is the core of Mojolicious::Routes. ATTRIBUTES
Mojolicious::Routes::Pattern implements the following attributes. "defaults" my $defaults = $pattern->defaults; $pattern = $pattern->defaults({foo => 'bar'}); Default parameters. "format" my $regex = $pattern->format; $pattern = $pattern->format($regex); Compiled regex for format matching. "pattern" my $pattern = $pattern->pattern; $pattern = $pattern->pattern('/(foo)/(bar)'); Raw unparsed pattern. "quote_end" my $quote = $pattern->quote_end; $pattern = $pattern->quote_end(']'); Character indicating the end of a quoted placeholder, defaults to ")". "quote_start" my $quote = $pattern->quote_start; $pattern = $pattern->quote_start('['); Character indicating the start of a quoted placeholder, defaults to "(". "regex" my $regex = $pattern->regex; $pattern = $pattern->regex($regex); Pattern in compiled regex form. "relaxed_start" my $relaxed = $pattern->relaxed_start; $pattern = $pattern->relaxed_start('*'); Character indicating a relaxed placeholder, defaults to "#". "reqs" my $reqs = $pattern->reqs; $pattern = $pattern->reqs({foo => qr/w+/}); Regex constraints. "symbol_start" my $symbol = $pattern->symbol_start; $pattern = $pattern->symbol_start(':'); Character indicating a placeholder, defaults to ":". "symbols" my $symbols = $pattern->symbols; $pattern = $pattern->symbols(['foo', 'bar']); Placeholder names. "tree" my $tree = $pattern->tree; $pattern = $pattern->tree([ ... ]); Pattern in parsed form. "wildcard_start" my $wildcard = $pattern->wildcard_start; $pattern = $pattern->wildcard_start('*'); Character indicating the start of a wildcard placeholder, defaults to "*". METHODS
Mojolicious::Routes::Pattern inherits all methods from Mojo::Base and implements the following ones. "new" my $pattern = Mojolicious::Routes::Pattern->new('/:action'); my $pattern = Mojolicious::Routes::Pattern->new('/:action', action => qr/w+/); my $pattern = Mojolicious::Routes::Pattern->new(format => 0); Construct a new pattern object. "match" my $result = $pattern->match('/foo/bar'); my $result = $pattern->match('/foo/bar', 1); Match pattern against entire path, format detection is disabled by default. "parse" $pattern = $pattern->parse('/:action'); $pattern = $pattern->parse('/:action', action => qr/w+/); $pattern = $pattern->parse(format => 0); Parse a raw pattern. "render" my $path = $pattern->render({action => 'foo'}); my $path = $pattern->render({action => 'foo'}, 1); Render pattern into a path with parameters, format rendering is disabled by default. "shape_match" my $result = $pattern->shape_match($path); my $result = $pattern->shape_match($path, 1); Match pattern against path and remove matching parts, format detection is disabled by default. SEE ALSO
Mojolicious, Mojolicious::Guides, <http://mojolicio.us>. perl v5.14.2 2012-09-05 Mojolicious::Routes::Pattern(3pm)
All times are GMT -4. The time now is 08:16 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy