PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : sequentielle dateiverarbeitung - awk



15-10-2000, 19:08
hallo,

moechte aus einer textdatei(zeilenweise) auslesen. habe aber ein merkmal was in verschiedenen zeilen vorkommt. wenn dieses merkmal erfuellt dann lesen bis dieses merkmal wieder auftaucht.

mein problem ist nicht die logik, sondern das wie. in c schreibe ich zwei schleifen und fertig. das problem will ich mit A W K loesen, scheitere aber an der syntax. kennt sich jemand damit aus?

thommy
18-10-2000, 08:42
awk arbeitet zeilenweise, d.h. wenn die Bearbeitung einer Zeile beendet ist, wird die nächste Zeile betrachtet. Es ist also keine Schleife für die Zeilenschaltung notwendig.

Vielleicht verdeutlicht folgendes Beispiel das Prinzip:

<pre>
#!/usr/bin/awk -f

BEGIN {
found=0
}
/#/ { found = !found}
found==0 { print $0 }
</pre>

Das Programm gibt alle Zeilen aus, bis eine Zeile ein "#" enthält. Anschließend werden alle Zeilen übersprungen, bis zum nächsten Erscheinen von "#". Ab dieser Zeile beginnt die Ausgabe erneut.

Thomas

19-10-2000, 02:08
also, waere ich der problemloesungssuchende,
wuerde ich jetzt mindestens danke sagen.

(sieht sehr hilfreich aus.)