Hi,
* Am 14.03.2002 um 15:00 Uhr schrieb Tobias Geis:
ich möchte mit sed oder awk (was halt einfacher geht) folgendes machen:
Es ist z.B in Datei vorhanden: blabalblub Blablabla ROT lbalbalbal blabiblilliblibubu
Es soll rauskommen: blabalblub <font color=red>Blablabla ROT lbalbalbal</font> blabiblilliblibubu
Ich will also überall wo ROT steht auch den Text mit Tags vorne und hinten einklammern.
wie wär's hiermit:
sed 's/\(.*ROT.*\)/<font color=red>\1<\/font>/g'
Funktioniert prima, danke ! Kannst du mir aber bitte noch erklären wie sed vorgeht ? Ich blicke da nicht so ganz durch. Ciao Tobias
Jürgen
-- Die letzten Worte eines Bergsteigers: "Waren gar nicht mal teuer, diese Karabinerhaken..." / Registered Linux-User #130804 http://counter.li.org \ \ Linux Stammtisch Bremerhaven http://linux.hs-bremerhaven.de /
-- Um die Liste abzubestellen, schicken Sie eine Mail an: suse-linux-unsubscribe@suse.com Um eine Liste aller verfügbaren Kommandos zu bekommen, schicken Sie eine Mail an: suse-linux-help@suse.com
-- GMX - Die Kommunikationsplattform im Internet. http://www.gmx.net
Am Don, 14 Mär 2002 schrieb Tobias Geis:
Hi,
* Am 14.03.2002 um 15:00 Uhr schrieb Tobias Geis:
ich möchte mit sed oder awk (was halt einfacher geht) folgendes machen:
Es ist z.B in Datei vorhanden: blabalblub Blablabla ROT lbalbalbal blabiblilliblibubu
Es soll rauskommen: blabalblub <font color=red>Blablabla ROT lbalbalbal</font> blabiblilliblibubu
Ich will also überall wo ROT steht auch den Text mit Tags vorne und hinten einklammern.
wie wär's hiermit:
sed 's/\(.*ROT.*\)/<font color=red>\1<\/font>/g'
Funktioniert prima, danke ! Kannst du mir aber bitte noch erklären wie sed vorgeht ? Ich blicke da nicht so ganz durch.
Lies Dir mal den Thread über RegExps aus der letzten Woche durch,
der wird Dir da schon viel weiterhelfen.
Aber mal in Kürze
.* steht für beliebig viele beliebige Zeichen+
ROT steht für ROT
\(\) fassen einen Ausdruck zusammen, so daß er sich später mit \1,
\2... referenzieren läßt (\1 halt der Inhalt der ersten Klammern
usw,)
s/<SuchMuster>/<Ersetzungstext>/ ist Suchen und Ersetzen mit sed, g
führt die Ersetzung auch mehrfach in einer Zeile aus (ist hier
unnötig).
sed 's/\(.*ROT.*\)/<font color=red>\1<\/font>/g'
sucht also nach beliebig vielen beliebigen Zeichen, dann ROT, dann
wieder beliebig viele beliebige Zeichen. Findet er dieses Muster,
ersetzt er es durch
participants (2)
-
Christoph Maurer
-
Tobias Geis