Antworten:
Die Pattern Match Inversion Option -v
für grep
ist dabei sehr hilfreich:
grep -v 'UFW BLOCK' /var/log/syslog
Dies zeigt Ihnen alle Zeilen, die nichts enthalten UFW BLOCK
. Da grep
Anwendungen grundlegende reguläre Ausdrücke standardmäßig die Aufnahme der Klammern wird es für jede der einzelnen Zeichen von ‚UFW BLOCK‘ einschließlich der Raum machen suchen. Sie werden wahrscheinlich ohne Ausgabe enden. Wenn Sie sicherstellen möchten , dass sich um die Zeichenfolge herum Klammern befinden, schließen Sie diese entweder \[UFW BLOCK\]
oder verwenden Sie die -F
Option grep
, nur feste Zeichenfolgen einzuschließen (Vielen Dank an Zanna und Steeldriver für die entsprechenden Hinweise):
grep -Fv '[UFW BLOCK]' /var/log/syslog
Sie können die Anzeige vereinfachen, indem Sie die Ausgabe an einen Pager wie folgt weiterleiten less
:
grep -v 'UFW BLOCK' /var/log/syslog | less
Oder leiten Sie die Ausgabe zur späteren Anzeige in eine Datei in Ihrem Ausgangsverzeichnis um:
grep -v 'UFW BLOCK' /var/log/syslog > ~/filtered_syslog
fgrep
Befehl verwenden, der äquivalent zu ist grep -F
.
Sie können jedes Werkzeug mit Bearbeitungsfunktionen verwenden. Sie haben bereits Lösungen mit grep
und erhalten sed
. Hier sind einige andere Optionen. Alle diese Faktoren können leicht geleitet werden less
oder more
sonst oder sonst etwas.
Perl
perl -ne 'print unless /\[UFW BLOCK\]/' /var/log/syslog
Da dies Perl ist, ist TIMTOWDI! .
perl -pe '$_="" if /\[UFW BLOCK\]/' /var/log/syslog
perl -ne '/\[UFW BLOCK\]/ || print' /var/log/syslog
perl -ne 'print if !/\[UFW BLOCK\]/' /var/log/syslog
perl -ne '!/\[UFW BLOCK\]/ && print' /var/log/syslog
perl -ne '/\[UFW BLOCK\]/ ? "" : print' /var/log/syslog
awk
awk '!/\[UFW BLOCK\]/' file
Sie können auch verwenden awk
:
awk '!/PATTERN/' log
Ich benutze es, wenn ich mehr als ein "Muster" habe und nicht zwei verwenden möchte, grep
wie:
... | grep -v foo | grep -v bar
welche die syntax ist:
awk '!/PATTERN/ && !/PATTERN2/' log
grep -Ev "foo|bar"
?
-e
mehrere Muster definieren. grep -v -e 'foo' -e 'bar'
Mit less
der &
Option des Befehls ist es möglich herauszufiltern, um nur das gewünschte übereinstimmende Muster wie folgt anzuzeigen.
& /PATTERN/
Wenn in Ihrem Fall Filterzeilen mit UFW BLOCK
nicht in der Ausgabe angezeigt werden sollen, können Sie einfach &!
Folgendes verwenden:
&! /UFW BLOCK/
less
die Möglichkeit bietet, die angezeigten Linien nach einem regulären Ausdruck zu filtern. Sie können diese Funktion verwenden, indem Sie&
gefolgt von dem Muster eingeben , und Sie können sie durch&
alleiniges Eingeben wiederherstellen.