[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Détecter fichiers qui n'ont pas une expression



Le 28 juin 2017 10:44, <andre_debian@numericable.fr> a écrit :
> On Tuesday 27 June 2017 20:14:49 Eric Degenetais wrote:
> > find chemin/racine -type f -name "*.txt" -exec grep -v <expression> {} \; -print
>
>  Merci.
>
>  Ça fonctionne mais moins bien que les deux ci-dessous,
>  car la commande affiche quand même quelques fichiers qui
>  ont pourtant l'expression.

On 06/28/2017 06:55 PM, Eric Degenetais wrote:
> Étrange, ça devrait fonctionner aussi. Et aider si les fichiers
> sont dispersés. Pas le temps de tester en détail mais il faudra
> que j'y revienne O_o
>

Bonjour,

Si j'ai bien compris le principe, la logique semble pêcher dans
la négation de la correspondance.  Avec la proposition ci-dessus,
l'assertion suivante est vraie alors qu'apparemment, on la
préférerait fausse :

        Si le fichier contient au moins une ligne dans laquelle
            l'expression n'est pas présente,
        alors afficher le fichier.

La commande suivante pourrait-elle correspondre à vos attentes ?

        find chemin/racine/ -type f -name '*.txt' -not -exec grep -q <expression> '{}' \;

Le `-v` du `grep` est enlevé et est remplacé par l'option `-not`
de la commande `find` pour indiquer que la commande passée au
`-exec` doit terminer en erreur pour que le fichier corresponde à
la recherche.  L'option `-q` est simplement là pour signaler à
`grep` de ne pas afficher les correspondances qu'il trouve, ça
donnera au passage une sortie d'écran un peu plus lisible.

À plus,
-- 
Étienne Mollier <etienne.mollier@mailoo.org>


Reply to: