Hallo,
ich tüftel gerade an einem Script mit dem ich ein Logfile nach Fehlern auswerten kann. Ich suche nach dem aktuellen Datum , und von da ab suche ich nach den Fehlern.
Wenn ein Fehler enthalten ist, dann will ich die Zeile oben drüber ebenfalls haben, den nda stehen Datum und Uhrzeit drin.
Mein Problem ist, das " awk 'NR == $VAR" zum Übergeben der Zeilennummer nicht funktioniert.
Wie kann ich die Zeilenzahl übergeben ?
Nicht so genau hinsehen, ich teste immer nur einzelne Zeilen, deshalb weiß ich noch nicht ob das gesammte überhaupt funktionieren würde (wenn das mit NR == $VAR gehen würde)
declare -i STARTCOL=1
declare -i ENDCOL=1
STARTCOL=$(cat alert.log | grep -n „$(date ‚+%a %b %e‘)“ | awk ’ NR == 1’ | cut -d „:“ -f1)
ENDCOL=$(wc -l alert.log)
while [$STARTCOL -le $ENDCOL] ; do
MELDUNG=awk ‚NR == $STARTCOL‘ alert.log | awk ‚/ORA-|Error|ALTER/‘
if [! -z ${MELDUNG}]; then
DATCOL=$(expr $STARTCOL - 1)
awk ‚NR == $DATCOL‘ alert.log
awk ‚NR == $STARTCOL‘ alert.log
fi
STARTCOL=expr $STARTCOL + 1
done
Wie stelle ich das an ?
Vielleicht hat auch jemand einen total einfachen anderen Weg, aber ich habe mir schon das Hirn zermartert wie ich an die Zeile vor der Fehlerzeile ran komme.
Danke für’s Hinsehen und Grüße
Chris