PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Mit AWK ein Logfile auswerten



bass.bass
01-12-2006, 15:04
Hallo Forum,
ich versuche folgendes Problem mit einem AWK-Script zu lösen. Folgende Logdatei möchte ich auswerten.

STATEMENT NAME: QZ8C624426A9918000
select a.avis_id, a.sendungs_id, c.tourenelement , c.zelle, c.zellenelement,
a.kundennummer, a.geschaeftsprozess, b.letzterstatus_zeitpunkt, b.letzterstatus,
b.letzterstatus_grund, b.letzterstatus_ort, c.nachname, c.vorname,
c.laenderkennzeichen from avis a, avis_zusatz b, adresse c where a.mandant_ID =
? and a.mandant_ID = b.mandant_ID and a.avis_id = b.avis_id and a.mandant_ID =
c.mandant_ID and a.erfuellungsort_adress_id = c.adress_id and c.nachname = ?
and c.vorname = ?
SQL4021 Zugriffsplan zuletzt am 30.11.06 um 13:25:23 gesichert.
SQL4020 Geschätzte Abfrageausführungszeit beträgt 0 Sekunden.
SQL402D Abfrageattribute durch Abfrageauswahldatei QAQQINI in Bibliothek HADV überschrieben.
SQL4027 Zugriffsplan wurde gesichert, während DB2 UDB Symmetric Multiprocessing auf dem System installiert war.
SQL4007 Abfrageimplementierung für Verknüpfungsposition 1, Tabelle 3.
SQL4008 Index ADRES00005 für Tabelle 3 verwendet.
SQL4011 Zeilenpositionierung nach Indexsuchschlüssel für Tabelle 3 verwendet.
SQL4007 Abfrageimplementierung für Verknüpfungsposition 2, Tabelle 1.
SQL4008 Index AVIS für Tabelle 1 verwendet.
SQL4011 Zeilenpositionierung nach Indexsuchschlüssel für Tabelle 1 verwendet.
SQL4007 Abfrageimplementierung für Verknüpfungsposition 3, Tabelle 2.
SQL4008 Index AVIS_00003 für Tabelle 2 verwendet.
SQL4011 Zeilenpositionierung nach Indexsuchschlüssel für Tabelle 2 verwendet.
SQL4006 Alle Indizes für Tabelle 3 berücksichtigt.
SQL4006 Alle Indizes für Tabelle 3 berücksichtigt.
SQL4006 Alle Indizes für Tabelle 3 berücksichtigt.

Ich möchte im Prinzip nur das "Select Statement" als eine aneinanderhängende Zeile ausgeben. Alle anderen Zeilen wie. "STATEMENTNAME" und die "SQL*" -Zeilen sollen nicht mit ausgegeben werden.

Ein AWK-Profi löst diese Aufgabe sicherlich in Minuten. Ich leider nicht. Vielleicht kann mit jemand dabei helfen.

Danke

Gruß Henrik

Romanday
01-12-2006, 16:09
Ein AWK-Profi löst diese Aufgabe sicherlich in Minuten. Ich leider nicht. Vielleicht kann mit jemand dabei helfen.

Danke

Gruß Henrik

awk '$1!~/^SQL.*/{print $0}'

(Die Lösung hatte ich ca. in 50 Sek., aber mit schreiben && copy/paste
bin ich über die Minute gekommen.:D)

bass.bass
01-12-2006, 16:32
awk '$1!~/^SQL.*/{print $0}'

(Die Lösung hatte ich ca. in 50 Sek., aber mit schreiben && copy/paste
bin ich über die Minute gekommen.)


Ist schon nicht schlecht. :cool:

Aber Zeilen die mit "STATEMENTNAME" anfangen sollen auch verschwinden und ich möchte das SQL-Statement was über mehrere Zeilen verteilt ist auf eine Zeile verketten.

Jetzt wirds schwer

Romanday
01-12-2006, 17:18
Jetzt wirds schwer

Nö, 1.30 Min. mußte erst noch 1x nachschauen.:D
awk -v ORS="" '$1!~/^SQL.*/ && NR != 1{print $0}'

bass.bass
13-12-2006, 09:52
Hallo,

vielen Dank für die Antwort.

Gruß Henrik