[Olug-list] grep-triks?

Knut Olav Bøhmer bohmer at gmail.com
Thu, 8 Jun 2006 08:28:05 +0200


Når vi først er inne på perl, kan vi gjøre det fra kommandolinje på
følgende måte:

perl -ne 'print if /PATTERN1/ && /PATTERN2/' file
(se "man perlrun" for flere artige trix)

Dette kan gjøres til et script, fex:

#!/usr/bin/perl

while (<STDIN>) {
        print if (m/$ARGV[0]/ && m/$ARGV[1]/);
}

Hvis man vi ha "eller" funksjon istede for "og", kam man bare bytte ut && med ||






On 6/7/06, Trond Reitan <trond.reitan@chello.no> wrote:
> Arne K. Haaje wrote:
>
> >Nicolai Langfeldt wrote:
> >
> >
> >>Arne K. Haaje wrote:
> >>
> >>
> >>>>Er det mulig å få grep til å matche på mer enn ett PATTERN?
> >>>>
> >>>>
> >>>I ren latskap foreslår jeg følgende;
> >>>
> >>>grep PATTERN1 | grep PATTERN2
> >>>
> >>>
> >>Men det blir jo "og", ikke "eller".
> >>
> >>Nicolai
> >>
> >>
> >Det stemmer. Det originale spørsmålet var "Er det mulig å få gre=
p til å
> >matche på mer enn ett PATTERN?". Det kan kanskje tolkes begge veier :D
> >
> >
> Vel, med "og"-tolkningen av problemet og under forutsetning av at
> PATTERN1 ikke nødvendigvis skal ligge på samme linje som PATTERN2,
> så har jeg lagd et per-skript kalt twopassgrep til å gjøre den jobb=
en. Den
> ligger på min script-side: http://folk.uio.no/trondr/scripts/
> for de som er interessert. Det finnes ca. garantert en shell-måte som l=
urer
> grep til å gjøre det samme, men jeg syntes dette var enklere.
>
> -Trond Reitan
>
>
> _______________________________________________
> Olug-list mailing list
> Olug-list@olug.linux.no
> https://init.linpro.no/mailman/olug.linux.no/listinfo/olug-list
>


-- 
Knut Olav Bøhmer
tlf: +47 47344008
http://abstinent.blogspot.com/