Réponses:
L'option d'inversion de correspondance de modèle -v
pour grep
est vraiment utile pour cela:
grep -v 'UFW BLOCK' /var/log/syslog
Cela vous montrera toutes les lignes ne contenant pas UFW BLOCK
. Comme grep
utilise 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' -F
option d' grep
inclure 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
fgrep
commande é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 grep
et sed
, voici quelques autres choix. Tous ces éléments peuvent facilement être raccordés à less
ou more
ou 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 grep
comme:
... | grep -v foo | grep -v bar
dont la syntaxe est:
awk '!/PATTERN/ && !/PATTERN2/' log
grep -Ev "foo|bar"
?
-e
pour définir plusieurs modèles. grep -v -e 'foo' -e 'bar'
Avec less
l' &
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 BLOCK
ne s'affichent pas en sortie, vous pouvez simplement utiliser &!
comme ci-dessous:
&! /UFW BLOCK/
less
offre 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.