Am Mittwoch, 30. August 2006 11:27 schrieb Achim Schäfer:
Hier ist das Skript. Ich bin offen für weitere Verbesserungsvorschläge.
anbei meine Version: -------------------- # Am Ende eines Blocks wird start zurückgesetzt, wenn Suchwort gefunden # das if() kann man sich sparen. awk ist eine Regelorientierte Sprache ($0 ~ /####################/ && start==1 && gefunden==1) { start=0; next; # die anderen Muster müssen nicht mehr untersucht werden } # Am Anfang eines Blocks wird gesammelt, wenn Wort noch nicht gefunden ($0 ~ /####################/ && gefunden==0) { start=1; zaehler=0; next; } (start == 1) { inhalt[zaehler]=$0; zaehler++; ## GAWK (vielleicht auch andere) erlauben Variablen als reg. Ausrücke, ## hier also SUCHWORT if ($0 ~ SUCHWORT) { gefunden=1 } } END { for (x = 0; x < zaehler; x++) { print inhalt[x] } } -------- speichert man das Script als foo.awk, dann kann man die Variable SUCHWORT so definierten: awk -f foo.awk -v SUCHWORT=foobar eingabedatei ohne GAWK kann man ähnliches erreichen, wenn man das AWK-Script in ein SH-Script einbettet und etwas mit den Quotes "spielt": in etwa so: ------------ #!/bin/sh SUCHVAR=$1 # hier ist SHELL awk < $DATEI ' ... if ($0 ~ /'$SUCHWORT'/) { ---------------^+++++++++^ hier wird von der SHELL die SHELL-variable --------------- expandiert, bevor AWK gestartet wird ... ' -------------- Bye Jürgen -- Dr.rer.nat. Juergen Vollmer, Viktoriastrasse 15, D-76133 Karlsruhe Tel: +49(721) 92 04 87 1 Fax: +49(721) 92 04 87 2 Juergen.Vollmer@informatik-vollmer.de www.informatik-vollmer.de Internet-Telefonie: www.skype.com Benutzer: juergen.vollmer