Hm, mit awk geht es in der Tat einfacher! Ich kannte leider die gsub-Funktion noch nicht. Ich habe das noch etwas umgeschrieben, sodass es für mich als awk-Anfänger logischer aussieht:
Code: Alles auswählen
{ print; }
/doc_screen/ {
gsub("doc_screen", "doc_print");
gsub("screen", "print");
print;
}
Jede Zeile ausgeben. Wenn es sich um die "doc_screen"-Zeile handelt, wird diese zusätzlich noch einmal unter zwei Ersetzungen ausgegeben. Man könnte auch nur eine Ersetzung machen: screen durch print:
Code: Alles auswählen
{ print; }
/doc_screen/ {
gsub("screen", "print");
print;
}
Schon wieder etwas gelernt.
Bei sed habe ich nun etwas weitergegooglet. Da ist oft die Rede von HoldSpace in diesem Zusammenhang, das verstehe ich noch nicht. Man findet auch oft sed-Fragen mit awk-Antworten, es scheint ja allgemein auf jede sed-Frage eine awk-Antwort zu geben...
Nachtrag:
So, jetzt noch den in awk "fehlenden" -i Parameter mit einem Shell-Skript zurechtfrickeln, dann wäre die Aufgabe erledigt
Code: Alles auswählen
#!/bin/sh
for f in *.html
do
awk -f stylesheet.awk $f > tmp.html
mv tmp.html $f
done