Antworten:
Die Pattern Match Inversion Option -vfür grepist dabei sehr hilfreich:
grep -v 'UFW BLOCK' /var/log/syslog
Dies zeigt Ihnen alle Zeilen, die nichts enthalten UFW BLOCK. Da grepAnwendungen 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 -FOption 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
fgrepBefehl verwenden, der äquivalent zu ist grep -F.
Sie können jedes Werkzeug mit Bearbeitungsfunktionen verwenden. Sie haben bereits Lösungen mit grepund erhalten sed. Hier sind einige andere Optionen. Alle diese Faktoren können leicht geleitet werden lessoder moresonst 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, grepwie:
... | grep -v foo | grep -v bar
welche die syntax ist:
awk '!/PATTERN/ && !/PATTERN2/' log
grep -Ev "foo|bar"?
-emehrere Muster definieren. grep -v -e 'foo' -e 'bar'
Mit lessder &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 BLOCKnicht in der Ausgabe angezeigt werden sollen, können Sie einfach &!Folgendes verwenden:
&! /UFW BLOCK/
lessdie 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.