Hallo Achim, On Mittwoch 30 August 2006 01:07 wrote Achim Schäfer:
Diese Tatsachen fand ich im ersten Moment erschwerend, aber ich habe folgendes awk-Skript geschrieben:
erstmal danke. Ich habe begonnen mich einzulesen und habe dein Skript so verändert, daß ich einen Suchbegriff auf der Kommandozeile übergeben kann. awk -f tg1.awk test.txt 'mein Suchtext' Dann habe ich es noch so geändert, daß mehrere Fundstellen nacheinander angezeigt werden. #!/usr/bin/awk -f BEGIN { start=0; gefunden=0; inhalt=""; Suchtext=ARGV[2] delete ARGV[2] } { if ($0 ~ /####################/ && start==1) # Trennzeile nach Fundstelle { if (gefunden==0) # der Suchtext wurde noch nicht gefunden {inhalt="";} else # Suchtext wurde bereits gefunden { if (inhalt!="") # keine leeren Zeilen anzeigen print inhalt; inhalt=""; # zurücksetzen für evtl. nächste Fundstellen start=0 gefunden=0; } } } { if ($0 ~ /####################/ && gefunden==0) # Trennzeile vor Fundstelle { start=1; # deshalb ist die nächste Trennzeile nach der Fundstelle } else { if (start==1) { inhalt=inhalt $0 "\n"; # inhalt wird um die aktuelle Zeile ergänzt if ($0 ~ Suchtext) # die aktuelle Zeile enthält den Suchtext { gefunden=1 # merken dass Suchtext gefunden wurde } } } } END {} # nichts ausgeben; wurde ja schon oben gemacht Grüße Wolfgang -- www.golder.de