Réponses:
L'option d'inversion de correspondance de modèle -vpour grepest vraiment utile pour cela:
grep -v 'UFW BLOCK' /var/log/syslog
Cela vous montrera toutes les lignes ne contenant pas UFW BLOCK. Comme greputilise les expressions régulières de base par défaut, l'inclusion des crochets lui fera rechercher n'importe lequel des caractères individuels de 'BLOC UFW' y compris l'espace. Vous vous retrouverez probablement sans sortie. Si vous devez vous assurer qu'il y a des crochets autour de la chaîne, échappez-les \[UFW BLOCK\]ou utilisez l' -Foption d' grepinclure uniquement les chaînes fixes (Merci à Zanna et Steeldriver pour les conseils à ce sujet):
grep -Fv '[UFW BLOCK]' /var/log/syslog
Vous pouvez faciliter la visualisation en canalisant la sortie vers un pager comme less:
grep -v 'UFW BLOCK' /var/log/syslog | less
Ou redirigez la sortie vers un fichier de votre répertoire personnel pour une visualisation ultérieure:
grep -v 'UFW BLOCK' /var/log/syslog > ~/filtered_syslog
fgrepcommande équivalente à grep -F.
Vous pouvez utiliser n'importe quel outil avec des capacités d'édition. Vous avez déjà reçu des solutions en utilisant grepet sed, voici quelques autres choix. Tous ces éléments peuvent facilement être raccordés à lessou moreou autre chose.
Perl
perl -ne 'print unless /\[UFW BLOCK\]/' /var/log/syslog
Puisque c'est Perl, 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
Vous pouvez awkégalement utiliser :
awk '!/PATTERN/' log
Je l'utilise quand j'ai plus d'un "motif" et je ne veux pas en utiliser deux grepcomme:
... | grep -v foo | grep -v bar
dont la syntaxe est:
awk '!/PATTERN/ && !/PATTERN2/' log
grep -Ev "foo|bar"?
-epour définir plusieurs modèles. grep -v -e 'foo' -e 'bar'
Avec lessl' &option de la commande, il est possible de filtrer pour afficher uniquement le motif correspondant souhaité comme ci-dessous,
& /PATTERN/
dans votre cas, si vous souhaitez que les lignes de filtre avec UFW BLOCKne s'affichent pas en sortie, vous pouvez simplement utiliser &!comme ci-dessous:
&! /UFW BLOCK/
lessoffre la possibilité de filtrer les lignes affichées après un modèle d'expression régulière. Vous pouvez utiliser cette fonctionnalité en tapant&suivi du motif, et vous pouvez le rétablir en tapant&seul.