linux-l: sed/perl/wasauchimmer...

Steffen Dettmer steffen at dett.de
Do Sep 21 23:34:46 CEST 2000


* Jens Dreger wrote on Thu, Sep 21, 2000 at 23:03 +0200:
> On Thu, Sep 21, 2000 at 01:13:13PM +0200, ruwen poljak wrote:
> > 
> > >~wort durch <i>wort</i> ersetzen. Kann mir da mal jemand ein
> > >geeigneten Codeschnipsel vorwerfen, den ich dann verfeinern kann?
> > [...]
> > 
> > bsp perl (kein einzeiler):
> 
> Sorry, aber da _muss_ ich einfach was zu loswerden. 

Och, meine Mail hätte ich mir sparen können...

> oder gleich "in-place":
> 
>      perl -pi -e 's|~(\w+)|<i>$1</i>|g' test1.txt

Mist, und das "g"lobal hab ich auch noch vergessen...

> > foreach (@back) {
> > 	$_ =~ s/(\w+)/<i>$1</i>/;

geht auch als
 	s/(\w+)/<i>$1</i>/;

aber noch jemand, der "g"lobal vergessen hat :)

> >            push(@wert,$_);

push @wert
sollte reichen IIRC.

Aber das muß auch mit nur einem Array funktionieren!

> Abspeichern in @wert ist unnoetig, weil das $_ =~ ... Konstrukt die
> Eintraege von @back modifiziert. 

Eben, warum dann nochmal "kopieren", wenn back schon geändert ist?!

> Nein, klappt nicht ;-) Z.B. kannst Du eine Variable nicht $datei-neu
> nennen oder Du musst '/' in s///-Konstrukten mit \ quoten. 

${datei-neu} müßte auch gehen IIRC.
 
> Ich
> persoenlich finde es immer nicht schlecht, ein Beispiel vorher mal
> kurz laufen zu lassen, weil man doch davon ausgehen muss, dass man
> selbst die Fehler doch schneller findet als die anderen
> Listeteilnehmer.

:) Hast Recht, gerade bei SO einer Frage... Aber das "g" hätte
ich vermutlich trozdem vergessen ;)

oki,

Steffen

-- 
Dieses Schreiben wurde maschinell erstellt,
es trägt daher weder Unterschrift noch Siegel.



Mehr Informationen über die Mailingliste linux-l