Derzeit versuche ich tail
ein Protokoll, aber nur die Zeilen, die einige Schlüsselwörter hat. Derzeit bin ich mitMehrere Grep-Rohrleitungen (include + exclude) führt dazu, dass nichts angezeigt
tail -F file.log | grep -ie 'error\|fatal\|exception\|shutdown\|started'
und ich bin die erwarteten Ergebnisse zu erzielen: (zB)
10:22 This is an error
10:23 RuntimeException: uncaught problem
Ich möchte auch Zeilen ausschließen, die eine <DATATAG>
enthalten, auch wenn die Schlüsselwörter hinein gerutscht , weil es viele binäre Daten enthält, die mein Protokoll überladen. Ich versuche dann eine andere grep auf das Rohr zu addieren, die den Tag ausschließt:
tail -F file.log | grep -ie 'error\|fatal\|exception\|shutdown\|started' | grep -vF '<DATATAG>'
jedoch diesmal keine Linien erscheinen, nicht einmal die vorherigen, die ‚Fehler‘/‚Ausnahme‘, aber nicht <DATATAG>
hat. Wenn ich das ausschließende grep allein ausprobierte:
tail -F file.log | grep -vF '<DATATAG>'
alle Zeilen erscheinen, einschließlich jene, die "Fehler"/"Ausnahme" haben.
Mache ich etwas falsch?
Es ist Pufferung wie @ jzer7 sagt aber anstelle von mehreren greps und Rohre, man denke nur ein awk: 'tail -F DATEI.log | awk '!//&& tolower ($ 0) ~/Fehler | fatal | exception | shutdown | started /' '. –