Momentan durchsuche ich viele unbekannte Protokolle, um nach Problemen zu suchen. Die erste Datei, die ich mir ansehe, ist Events.log. Auf mindestens drei Seiten less
wird das gleiche Ereignis zu unterschiedlichen Zeiten angezeigt - ein Ereignis, das ziemlich harmlos zu sein scheint. Ich möchte dieses Ereignis herausfiltern, und derzeit beende ich less
und mache so etwas
grep -v "event text" Events.log | less
Dies bringt nun eine Reihe weiterer häufiger, uninteressanter Ereignisse mit sich, die ich ebenfalls herausfiltern möchte. Gibt es einen Weg, den ich grep -v
innerhalb von kann less
? Anstatt es tun zu müssen
egrep -v "event text|something else|the other thing|foo|bar" Events.log | less
Es scheint mir eine nützliche Funktion zu sein, wenn ich mir eine Protokolldatei anschaue - und wenn less
das Tool nicht vorhanden ist, gibt es eine andere mit den Eigenschaften, die ich suche? Nur ein less
Viewer mit eingebautem grep
.
less
, mit ‚&! <1stpattern>‘ erlaubt es mir zu ‚verstecken‘ Linien mit einem Muster auf, aber es gilt nur für ein Muster zu einem Zeitpunkt, also wenn ich ein zweites Muster finden und anzuwenden ‚&! <2ndpattern>‘, Linien, die mit dem ersten Muster übereinstimmen und ausgeblendet wurden, sind jetzt sichtbar. Also ganz nah dran!&!
und dann eine Pfeiltaste.less
. Ich weiß jedoch nicht, ob es nach dem Neustart erhalten bleibt.Aufbauend auf der Antwort von orion beschreibt die
less(1)
Manpage(Natürlich
^N
und^E
usw. stehen für Ctrl+ Nund Ctrl+ Eusw.)Es stellt sich heraus, dass und gut zusammenarbeiten. Zum Beispiel die Befehle
&pattern
/pattern
&!arp|dns
Enter/
Ctrl+Kfail|fatal|fault|sd[a-z][0-9]
Enterin beliebiger Reihenfolge eingegeben, versteckt (schließen) alle Zeilen enthalten
arp
oderdns
(wiegrep -v
), und dann, in den übrigen Linien, markieren Sie alle Vorkommenfail
,fatal
,fault
, oder etwas , das wie der Name eines SCSI - Geräts sieht (sd[a-z][0-9]
). Beachten Sie, dass Zeilen, diearp
oderdns
und auchfail
oder eines der anderen Gefahrenwörter enthalten, nicht angezeigt werden.quelle
In den letzten Monaten habe ich mich ein wenig verliebt
fzf
.In Ihrem Fall, solange Kontext nicht benötigt wird (dh das äquivalent von grep
-A
,-B
oder-C
nicht benötigt wird , und durch die Art und Weise, weniger die&
hat auch die gleiche Einschränkung), dann ist fzf ein sehr mächtiges Werkzeug.Hier ist ein dummes Beispiel:
Wenn Sie das ausführen und mit Eingaben wie
aa | bb dd | ee !gg !hh
usw. spielen, werden Sie schnell sehen, was passiert.Die Fzf-Dokumentation zum
|
Operator ist spärlich, aber ich vermute, dass sie nur für die Begriffe unmittelbar vor und nach gilt. Dies bedeutet, dass ODER Vorrang vor UND hat (was implizit ist ; alle Begriffe sind standardmäßig UND-verknüpft). . Aber in den meisten Fällen sollte dies kein Problem sein, und meiner Erfahrung nach läuft es gut.Versuch es einmal. Ich habe es überraschend nützlich gefunden, wenn es darum geht, Dinge zu durchsuchen, wenn ich nicht sicher bin, wonach ich suche und wenn der Kontext keine Rolle spielt.
quelle