Comment utiliser la correspondance négative avec grep sous Linux (lignes d’impression qui ne correspondent pas)


Coque de frappe

grep est un utilitaire de recherche en ligne de commande pour Linux qui imprime les lignes dans les fichiers qui correspondent à un modèle ou à une expression régulière. Il est également utile d’inverser les correspondances, ce qui filtrera toutes les lignes d’un fichier contenant la chaîne donnée.

Correspondance négative avec grep

Pour utiliser la correspondance négative dans grepvous devez exécuter la commande avec le -v ou --invert-match drapeaux. Cela n’imprimera que les lignes qui ne correspondent pas au motif donné.

grep -v "bar" file

Gardez à l’esprit que depuis grep ne correspond à rien, il n’y a aucun moyen d’utiliser le -o drapeau pour imprimer « uniquement les correspondances », puisque rien n’a techniquement correspondu. grep est capable de faire correspondre plusieurs fois par ligne, mais dans ce cas, peu importe s’il y a plusieurs correspondances. Tout match unique entraînera grep pour omettre la ligne.

Cela fonctionne également avec les expressions régulières (regex) et imprimera toute ligne dont les fichiers correspondent à la regex.

grep -v "foo ba[rz]" file

Bien que vous puissiez écrire des expressions régulières qui effectuent 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 awkvous pouvez utiliser le modificateur d’exclamation pour inverser l’expression régulière.

awk '!/bar/' file

Noms de fichiers correspondants négatifs

La minuscule -l le drapeau causera grep pour imprimer les 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 de la même manière, il est également utile d’inverser cela parfois.

L’inverse de -l est la variante majuscule, -Lqui fait le contraire :

grep -L "bar" ./*.txt

Assurez-vous de ne pas utiliser le -v drapeau avec -L d’inverser la correspondance avant d’imprimer les fichiers sans la correspondance, sinon vous vous retrouverez dans une situation de « double opposé » où la correspondance est inversée deux fois et n’a pas l’effet escompté.





Vous pouvez lire l’article original (en Angais) sur le sitewww.howtogeek.com