[shell] quotes, double quotes und das leaning toothpick syndrome (was: Re: [shell] ...)

Datumsansicht Baumansicht Betreffansicht Attachement-Sicht

From: Raphael H. Becker (beckerra_at_rumms.uni-mannheim.de)
Date: 26. Jul 2000


Christian Weisgerber wrote:
> > > |sed 's/\"\//\"http\:\/\/www.heise.de\//g' \
> > |sed -e '1,8d' -e 's,"/,"http://www.heise.de/,g' \
>
> Um noch etwas zur umgeschriebenen sed-Ersetzung zu sagen:
>
> Bei seds »s«-Operator ist das Begrenzungszeichen weitgehend frei
> wählbar. Wenn es in dem Regular Expression oder in der Ersetzung
> vorkommt, dann muss es mit »\« geschützt werden. Das häufig als
> Begrenzungszeichen verwendete »/« wird in keiner Weise besonders
> behandelt.

Aha. Ich habe bisher immer nur die Version mit den "/" gesehen (jetzt
nicht unedingt nur bei sed, sondern auch ganz allgemein).
 
> Geschickterweise wählt man ein Begrenzungszeichen, das im RE und
> in der Ersetzung nicht vorkommt, also bei Dateisystempfaden und
> URLs gerade nicht »/«, sonst kommt es zum »leaning toothpick
> syndrome«, wie oben bei Raphael.

... und ich mich schon die ganze Zeit gefragt, wieso man für /\//\/\/\
noch keinen Begriff eingeführt hat ;-)
 
> Ich weiß nicht, warum Raphael den »"«-Anführungszeichen ein »\«
> vorausgestellt hat. Von der Shell aus ist es überflüssig, weil »"«
> innerhalb von »'« keine Sonderbedeutung mehr hat, und sed behandelt
> »"« auch nicht besonders.

Ich weiß es auch nicht. Mir ist klar, daß ' genenüber " eine
Vorrangstellung hat.
Einfach aus Gewohnheit. Ich bastel hin und wieder shellscripte, die
einen html-Output generieren und da muß man (so denn variabler Inhalt
vorkommt) echo "Foo $BAR" verwenden ... und wenn eben Pfadnamen und/oder
Anführungszeichen vorkommen, dann kommt man um \" und \/ nicht herum.

Siehe zB http://rhb.swm.uni-mannheim.de/scripts/createindex, mit dem ich
meine Bilderverzeichnisse erzeuge.

Gruß
Raphael Becker
PS: Ich weiß, daß man sowas besser mit Perl macht :-)

-- 
Hi! I'm a .signature virus! 
Copy me into your ~/.signature to help me spread!
http://signature.home.pages.de/


Datumsansicht Baumansicht Betreffansicht Attachement-Sicht

Dieses Archiv wurde generiert von hypermail 2.1.2 : 11. Mar 2002 CET