Verwenden tail -F <logfile> | grep '<string>'
Sie und Sie sehen nur Zeilen mit <string>
.
Entferne die vorherigen Zeilen im Schwanz oder darunter
373
Qohelet
Ich verwende tail -f
oder less +F
, um eine sich ändernde Protokolldatei zu beobachten. Ich weiß von einem bestimmten Punkt aus, dass die Linien, die ich suche, erscheinen werden.
Also den ganzen Müll vor diesem Punkt brauche ich nicht und würde ihn gerne irgendwie entfernen.
Gibt es eine Möglichkeit, dies zu erreichen? Muss nicht sein tail
oder less
ich bin nicht darauf beschränkt.
Angenommen, die Eingabe war "seq 100", und es war bekannt, dass nur Zeilen mit mehr als * 50 * die benötigten Zeilen hatten. Nehmen wir an, die benötigten Zeilen sind * 61 * und * 63 * ... ist das Ziel, von * 61 * bis * 100 * (40 Zeilen) oder nur * 61 * und * 63 * (2 Zeilen) zu drucken?
agc vor 6 Jahren
0
Ich wünschte, es wäre so klar. Ich sehe das Programm und die Protokolle parallel und als ein bestimmter Punkt im Programm erreicht ist, weiß ich, dass die Zeile, die ich erwarte, in den nächsten 3-5 Sekunden erscheinen wird. Alles, was vor diesem Punkt in das Protokoll geschrieben wurde, ist nicht relevant und ich möchte es entfernen.
Qohelet vor 6 Jahren
0
1 Antwort auf die Frage
0
gmelis
Ich weiß nicht auf welche Saite ich warte. Ich weiß nur, in welchem Zeitraum sie in das Logfile eingelesen werden.
Qohelet vor 6 Jahren
0
Sie haben also von dieser Zeit bis zu dieser Zeit etwa 09:45:00 bis 10:20:59? `awk` könnte in einem solchen Fall hilfreich sein, es sei denn, Sie möchten ein Analyseprogramm schreiben, das` python`, `perl`,` bash` oder eine andere Skriptsprache verwendet. Oder Sie können `s 'Range-Funktion von` `` verwenden, wie in `tail -F / var / log / syslog | sed -n -e '/ 09:45: /, / 10: 15: / p'`, um alle Protokolleinträge von 09:45 bis 10:15 zu drucken.
gmelis vor 6 Jahren
0
Es gibt eine Zeit am Anfang, aber manchmal kommen mehr als 50 Logs pro Sekunde (nicht immer, aber manchmal). Es kann sein, dass ich 11:31:33 in eine Hälfte teilen muss und alles wegwerfen muss, und alles, was nach dem ersten Viertel von 11:31:36 liegt, ist auch nicht so interessant
Qohelet vor 6 Jahren
0
Ok, es muss etwas geben, wonach du suchst. `sed`,` awk`, `grep` und piping können Sie weit genug bringen, und Sie können mit 'regex' die Form` /09:45:.*source_of_message.*begin_of_interesting_message/ einschränken, was Sie suchen. , / 10: 15. * end / `
gmelis vor 6 Jahren
0
Bisher weiß ich meistens, wie der Eintrag nicht aussieht. Meistens Dinge wie `Client: gotNewMsg type M_TRANSACTION` und andere, wie sie überall erscheinen. Bisher suche ich meistens nach anderen Nachrichten und beziehe mich auf bestimmte Objekte (aber ich weiß nicht, wie sie benannt werden.
Qohelet vor 6 Jahren
0
Warum fangen Sie in diesem Fall nicht mit * Zeilen * an? Beenden Sie Ihre Befehlszeile mit etwas wie `..... | grep -v 'not_this \ | nor_this \ | none_this'`, dh `... | grep -v 'Client: gotNewMsg-Typ M_TRANSACTION' '
gmelis vor 6 Jahren
0
Verwandte Probleme
-
9
Was ist der Unterschied zwischen den Befehlen "su -s" und "sudo -s"?
-
4
Gutes freies Ubuntu Server-VMWare-Image benötigt
-
4
Was sind die Unterschiede zwischen den großen Linux-Distributionen? Werde ich es merken
-
6
Log Viewer unter Windows
-
2
Begrenzung der CPU-Auslastung für Flash in Firefox?
-
2
Wie kann ich mein Mikrofon unter Debian GNOME zum Laufen bringen?
-
2
Conky-Setups - Beispiele / Ideen?
-
3
Was sind die Unterschiede zwischen Linux Window Managern?
-
2
ThunderBird / Lichtsynchronisation mit SE k770i
-
4
Linux-Dateisystem