Comment utiliser la correspondance négative avec grep sous Linux (lignes d’impression qui ne correspondent pas)
grep
est un utilitaire de recherche en ligne de commande pour Linux qui imprime des lignes dans des fichiers qui correspondent à un modèle ou à une expression régulière. Il est également utile d’inverser les correspondances pour filtrer toutes les lignes d’un fichier contenant une chaîne donnée.
Correspondance négative avec grep
Pour utiliser une correspondance négative dans grep
, vous devez émettre la commande avec les -v
indicateurs ou . --invert-match
Cela n’imprimera que les lignes qui ne correspondent pas au motif donné.
grep -v "bar"file
Sachez cependant que puisque grep
rien ne correspond, il n’y a aucun moyen d’utiliser -o
le drapeau pour afficher « correspond uniquement », puisque rien ne correspond techniquement. grep
peut correspondre plusieurs fois dans une chaîne, mais dans ce cas, peu importe s’il y a plusieurs correspondances. Tout match unique entraînera grep
un saut de ligne.
Cela fonctionne également avec les expressions régulières (regex) et imprimera toute chaîne correspondant à la regex.
grep -v "foo ba[rz]"file
Bien que vous puissiez écrire des expressions régulières qui font une correspondance négative, il est généralement plus facile d’inverser la correspondance de cette façon.
Alternativement, si vous préférez utiliser awk
, vous pouvez utiliser le modificateur d’exclamation pour inverser l’expression régulière.
awk '!/bar/' file
Noms de fichiers correspondants négatifs
L’indicateur en minuscule -l
entraînera grep
l’impression des noms de fichiers contenant des correspondances au lieu du contenu correspondant réel. Cela peut être utile lors de l’analyse d’une liste de fichiers, mais il est également parfois utile de l’inverser.
Reverse -l
est une variante majuscule -L
qui fait le contraire :
grep -L "bar". /*.txt
Assurez-vous de ne pas utiliser -v
le drapeau c -L
pour inverser la correspondance avant d’imprimer des fichiers sans correspondance, ou vous vous retrouverez dans une situation de « double opposé » où la correspondance est inversée deux fois et n’a pas l’effet souhaité.
Laisser un commentaire