Comment exclure un mot avec grep

Table des matières:

Anonim

L'outil de ligne de commande grep est extrêmement utile pour rechercher dans les données textuelles des lignes et des extraits correspondant à une chaîne, un caractère, un mot ou une expression régulière définis. Bien que la plupart des utilisations de grep soient destinées au tri des données pour les correspondances de syntaxe, que se passe-t-il si vous souhaitez exclure un mot ou une chaîne avec grep à la place ? L'exclusion des correspondances de lignes avec grep est tout aussi utile que la recherche et l'impression de correspondances dans grep. Voyons donc comment exclure les correspondances de chaînes et exclure des mots avec grep.

Évidemment, vous voudrez avoir une certaine expérience de la ligne de commande et une exposition à grep pour trouver cela utile. Si vous souhaitez suivre, vous pouvez ouvrir l'application Terminal et l'essayer vous-même. Étant donné que grep est un utilitaire indépendant du système d'exploitation, vous pouvez utiliser l'astuce d'exclusion sous Mac OS, Linux, Unix ou tout autre outil utilisant grep.

Comment exclure un seul mot avec grep

Le moyen le plus simple d'exclure des lignes avec une correspondance de chaîne ou de syntaxe consiste à utiliser grep et l'indicateur -v.

Par exemple, disons que nous utilisons cat pour imprimer un fichier sur la ligne de commande, mais que nous voulons exclure toutes les lignes qui incluent le terme "ThisWord", alors la syntaxe ressemblerait à ceci :

"

cat exemple.txt | grep -v CeMot"

La sortie sera le fichier texte example.txt mais excluant toute ligne contenant une correspondance de chaîne avec "ThisWord".

Vous pouvez également utiliser grep directement sur les fichiers et exclure les correspondances de ligne en fonction des mots ou de la syntaxe, comme ceci :

"

grep -v ThisWord>"

Utilisez celui qui convient le mieux à votre flux de travail particulier.

Comment exclure plusieurs chaînes ou mots avec grep

Maintenant que vous savez comment exclure des correspondances pour un seul mot, la prochaine question évidente concerne l'exclusion de plusieurs mots avec grep. C'est tout aussi simple, et il existe plusieurs façons d'y parvenir en utilisant le drapeau -v ainsi que le drapeau -e.

Prenons d'abord l'exemple ci-dessus d'utilisation de cat sur un fichier redirigé vers grep, et excluons toutes les lignes correspondant à deux mots ; "Word1" et "Word2", cela ressemblerait à ceci :

"

cat exemple.txt | grep -v -e Mot1 -e Mot2"

Toutes les lignes contenant "Word1" ou "Word2" seront exclues des résultats imprimés.

Vous pouvez également utiliser grep directement sur les fichiers comme avant :

"

grep -v -e Word1 -e Word2 example.txt"

Une autre approche consiste à séparer ce qu'il faut exclure avec grep en utilisant un tube pour séparer chaque correspondance, comme ceci :

"

grep -Ev mot1|mot2 exemple.txt"

Si vous testez l'une de ces options sur un exemple de fichier texte, vous constaterez que la sortie est identique quelle que soit l'approche que vous adoptez, chacune excluant les lignes qui incluent les phrases ciblées, la syntaxe, les mots ou correspondance de texte.

Génial, montrez-moi un exemple utile d'exclusion de données avec grep !

 Pour un exemple pratique que les utilisateurs avancés de Mac peuvent trouver utile, nous pouvons utiliser l'exclusion de grep lors de l'impression et de l'interrogation de l'historique de la ligne de commande pour rechercher des commandes précédemment exécutées afin de trouver des correspondances par défaut, mais en excluant certaines chaînes par défaut sélectionnées de la production.

Dans cet exemple, nous imprimerons l'historique des commandes pour les correspondances de chaînes par défaut, mais exclurons tout ce qui correspond à iTunes tel que défini par "com.apple.itunes":

"

history |grep defaults write |grep -v -e com.apple.itunes"

Donc, si vous avez suivi, cela rapporterait toutes les exécutions historiques de la commande "écriture par défaut", mais à l'exclusion de tout ce qui concerne l'application iTunes. Bien, hein ?

Si vous avez des utilisations particulièrement pratiques de l'exclusion de correspondances avec grep, partagez-les avec nous dans les commentaires ci-dessous ! Et si vous avez apprécié cet article, vous aimerez certainement parcourir nos nombreux articles en ligne de commande ici où il y a beaucoup plus à apprendre !

Comment exclure un mot avec grep