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] Erstatte en linie med en fil



On Mon, 29 Apr 2002, Peter Makholm wrote:

> Jacob Sparre Andersen <sslug@sslug> writes:
>
> > Jeg har brug for at erstatte en linie der svarer til et
> > bestemt regulært udtryk ('^[ ]*[\]bibliography[{].+[}][
> > ]*$', hvis der er nogen der er nysgerrige) med en hel fil
> > ('artikel.bbl' i dette tilfælde). Hvordan gør man det?
>
> Øv, twoliner:
>
> $ perl -p 'BEGIN { open FH, 'artikel.bbl'; $file = join "\n", <FH> }
>            $_ = $file if /^[ ]*[\]bibliography[{].+[}][ ]*$/ '

Der kommer for mange \n.

$ perl -p -e 'BEGIN { $file=`cat artikel.bbl` }
              s:^[ ]*[\]bibliography[{].+[}][ ]*$:$file:g'

Eller:

$ perl -pe '$f=`cat artikel.bbl`;s:^[ ]*[\]bibliography[{].+[}][ ]*$:$f:g'

Men så forsvandt effektiviteten.

Hvis det skal gøres i samme fil, så er -i.bak en god option at kunne.


/Ole
-- 
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:54
Denne side vedligeholdes af MHonArc .