Lister en excluant un motif de la recherche

Résolu
snow_frog Messages postés 216 Date d'inscription   Statut Membre Dernière intervention   -  
snow_frog Messages postés 216 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

voilà tout est dans le titre, je cherche à lister des fichier en excluant un motif de la liste de résultat.

par exemple, dans le reprtoire cournat, je recherche tout les fichier jpg ne contenant pas le mot: rouge.

pour le moment je m'en sort avec :

 find *.jpg > tmp && grep -v rouge tmp 


mais je me demandais s'il n'y avait pas quelque chose de plus optimisé que de passer par un fichier temporaire ?

avis aux amateurs

3 réponses

zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 431
 
Salut,

find *.jpg | grep -v rouge *.jpg


Édit : Correction de la syntaxe :
find *.jpg | grep -v rouge


Zen my nuggets ;-)
Faites un geste pour l'environnement, fermez vos fenêtres et adoptez un manchot.
0
snow_frog Messages postés 216 Date d'inscription   Statut Membre Dernière intervention   139
 
merci, mais voilà ce que j'obtiens:

/home/moi/image> ls *.jpg
DSC_105925.jpg*
DSC_105925_Yeux_rouge.jpg*
/home/moi/image> find *.jpg > tmp && grep -v rouge tmp
DSC_105925.jpg
/home/moi/image> find *.jpg | grep -v *rouge* *.jpg
Binary file DSC_105925.jpg matches
Binary file DSC_105925_Yeux_rouge.jpg matches
/home/moi/image>


?
0
zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 431
 
Oups, honte à moi, il ne faut pas le "*.jpg" à la fin, désolé ;-((

find *.jpg | grep -v rouge


Tu peux aussi faire directement avec find :

find . ! -name "*rouge*" -name "*.jpg"
0
snow_frog Messages postés 216 Date d'inscription   Statut Membre Dernière intervention   139
 
mreci! en effet ça marche mieux! et ça m'evite d'utiliser un fichier temporaire
0