web-dev-qa-db-fra.com

Comment inverser une expression grep

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 !=.)

213
sMaN

Utilisez l'option de ligne de commande -v ou --invert-match,

ls -R |grep -v -E .*[\.exe]$\|.*[\.html]$
312
Eric Fortis
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 .

94
darioo

Ajoutez l’option -v à votre commande grep pour inverser les résultats.

29
Rob Sobers
 grep "subscription" | grep -v "spec"  
7
Anja Ishmukhametova

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

4
jmd_dk