L'expression grep suivante répertorie avec succès tous les fichiers .exe et .html du répertoire et des sous-répertoires en cours.
ls -R |grep -E .*[\.exe]$\|.*[\.html]$
Comment inverser ce résultat pour répertorier ceux qui ne sont pas un fichier .html ou .exe à la place. (C’est-à-dire !=
.)
Utilisez l'option de ligne de commande -v
ou --invert-match
,
ls -R |grep -v -E .*[\.exe]$\|.*[\.html]$
grep -v
ou
grep --invert-match
Vous pouvez également faire la même chose en utilisant find
:
find . -type f \( -iname "*" ! -iname ".exe" ! -iname ".html"\)
Plus d'infos ici .
Ajoutez l’option -v
à votre commande grep
pour inverser les résultats.
grep "subscription" | grep -v "spec"
Comme indiqué à plusieurs reprises, l'inversion est obtenue par l'option -v
en grep
. Laissez-moi ajouter la note (amusante, espérons-le) que vous auriez pu le découvrir vous-même en passant à travers le texte d'aide grep
:
grep --help | grep invert
-v, --invert-match sélectionne des lignes non concordantes