SkÃ¥ne Sjælland Linux User Group - http://www.sslug.dk Forside   Tilmelding   Postarkiv   Forum   Kalender   Søg
MhonArc Dato: [Date Prev] [Kronologisk oversigt] [Date Next]   TrÃ¥d: [Date Prev] [Oversigt trÃ¥de] [Date Next]   MhonArc
 

Re: [PERL] escape en sti i en one-liner



On Sat, 2 Nov 2002, Bjørn Bille Højte wrote:

> On Sat, 2 Nov 2002, Ole Tange wrote:
>
> > Jeg tror, du skal give os to korte eksempler på, hvad stier og sletstier
> > kunne indeholde.
>
> Okay... Filerne indeholder reelt md5summer og filnavne (relative), og er
> altså lister af md5summer og filnavne. For at forsimple det til mit
> problem med "/" undlod jeg at nævne md5summerne

Ahahh. Så vi taler ikke om, at sletstiler indeholder delvise matches
(f.eks. kunne den indeholde usr/local), men matchning af hele linjer.
Det gør problemet meget nemmere at løse:

perl -ne 'sslug@sslug sletstier`;@sslug@sslug@a;} $s{$_} or print' stier

Denne løsning virker også, hvis '|' (eller andet regexp snask) indgår i
filnavnet og er extremt hurtig i forhold til /@a/-udgaven.

> > Mit gæt på løsning er:
:
> > perl -e 'chomp(@a=`cat /tmp/sletstier`);$"="|"; print grep !/@a/o, <>'
> > stier
:
> Er det rigtigt forstået at grunden til at det virker er at det er "|" der
> nu er seperator i stedet for "\n", og det hele derfor virker som et
> "eller" udtryk i matchningen?

Næsten. "\n" bliver fjernet af chomp. "|" bliver indsat ved udregningen af
/@a/. Der bliver fjernet n "\n"'er, men kun indsat n-1 "|"'er.

> Hvordan har perl det med sådanne udtryk der har MANGE (tusinder)
> eksklusioner? Det kan jo gå hen og blive et temmelig stort array.

Fra man perl:

  Unlike most Unix utilities, Perl does not arbitrarily limit the size of
  your data--if you've got the memory, Perl can slurp in your whole file
  as a single string.


/Ole
-- 
Registered Linux user #194. Get counted: http://counter.li.org
http://ole.tange.dk



 
Forside   Tilmelding   Postarkiv   Oversigt   Kalender   Søg

 
 
Henvendelse vedrørende websiderne til <www_admin>. Senest ændret 2005-08-10, klokken 19:55
Denne side vedligeholdes af MHonArc .