Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 18/11/2023, à 08:47

Loposum

[Résolu] Chercher dans le contenu de fichiers n'étant pas des .html

Bonjour,
J'apprends progressivement à me servir des commandes grep, find et ls en me donnant des petits challenges au quotidien.
Là je sèche.
J'ai un paquet de fichiers avec des tutos dont des .html
Je souhaiterais chercher un contenu avec grep dans tous les fichiers de mon répertoire sauf les .html qui me renvoient beaucoup trop de résultats.

Je ne vois pas comment noter cette exclusion...
Ça fait plusieurs jours que je cherche. J'en peux pluuuuuuus ^^'
A l'aide s'il vous plaît smile

Dernière modification par Ayral (Le 19/11/2023, à 11:56)

Hors ligne

#2 Le 18/11/2023, à 09:18

Loposum

Re : [Résolu] Chercher dans le contenu de fichiers n'étant pas des .html

Après discussion avec un ami, j'ai réussi à obtenir ce que je voulais avec ça :

f=`ls -I *.html` ; grep 352 $f

Je créé une variable f qui va lister les fichiers du répertoire courant qui ne sont pas des .html, puis je cherche la chaîne de caractères '352' dans le résultat de la variable f.
Est-ce que vous voyez une autre manière ? Plus directe ou indirecte, j'apprendrai au passage smile

Hors ligne

#3 Le 18/11/2023, à 09:18

Nuliel

Re : [Résolu] Chercher dans le contenu de fichiers n'étant pas des .html

Bonjour,
Tu as la négation sur find, donc je dirais

nuliel@nuliel-Latitude-E7270:~$ find . -type f ! -name "*.html" -exec grep 'azerty' {} \;
azerty

mais on n'a pas le nom du fichier par contre, ou il faut adapter la commande

Ou sinon tu as l'option exclude de grep:

nuliel@nuliel-Latitude-E7270:~$ grep -ri --exclude=*.html 'azerty' test_find/
test_find/wow:azerty
nuliel@nuliel-Latitude-E7270:~$ grep -ri 'azerty' test_find/
test_find/toto.html:azerty
test_find/wow:azerty 

Dernière modification par Nuliel (Le 18/11/2023, à 09:19)

Hors ligne

#4 Le 18/11/2023, à 13:38

Watael

Re : [Résolu] Chercher dans le contenu de fichiers n'étant pas des .html

change d'ami. big_smile

en bash :

shopt -s extglob
grep 352 ./!(*.html)

Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#5 Le 18/11/2023, à 18:37

Hizoka

Re : [Résolu] Chercher dans le contenu de fichiers n'étant pas des .html

C'est vrai que la commande de ton ami est bien sale.


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#6 Le 19/11/2023, à 09:50

Loposum

Re : [Résolu] Chercher dans le contenu de fichiers n'étant pas des .html

Merci pour vos réponses.
Nullel,
C'est bien l'option --exclude de grep que je cherchais. Merci !
Merci aussi pour ta proposition avec find -exec grep. J'y ai appris qu'on pouvait faire une négation sur une option complète smile (c'est bien ça ?)

Watael,
Merci pour cette version. Je crois comprendre que shopt -s extglob active les expressions régulières avancées afin que grep puisse profiter de la négation !

Non je ne changerai pas d'ami wink
La commande résulte d'une discussion avec lui, ce n'est pas lui qui l'a écrite telle quelle. Il a utilisé une variable et je l'ai adaptée.
Elle peut paraître sale à certains mais elle fonctionne wink

Hors ligne

#7 Le 19/11/2023, à 11:52

diesel

Re : [Résolu] Chercher dans le contenu de fichiers n'étant pas des .html

Le "change d'ami" de Watael était un trait d'humour, mais je crois que tu l'avais bien compris comme ça.

Tu peux modifier le titre de ton message d'origine pour ajouter "[RÉSOLU]" afin de clore la discussion (à peu près, parce que, parfois, ça continue quand-même wink smile ).

Amicalement.

Jean-Marie

Dernière modification par diesel (Le 19/11/2023, à 11:55)


Je déteste qu'on cherche à me faire passer pour un con, j'y arrive déjà très bien tout seul.
Le mort, il sait pas qu'il est mort ; c'est pour les autres que c'est dur.................... Pour les cons, c'est pareil.

Hors ligne

#8 Le 19/11/2023, à 16:35

Watael

Re : [Résolu] Chercher dans le contenu de fichiers n'étant pas des .html

oui! --exclude ! je ne l'avais pas vu dans la réponse de Nulliel. cool

shopt -s extglob, n'active pas des "regex avancées", mais des extensions des correspondances de motifs des noms de chemin (globbing).

il y a bien des choses qui fonctionnent et qu'on voudrait voir cesser; au hasard : l'usage du glyphosate dans l'agriculture.

Dernière modification par Watael (Le 19/11/2023, à 18:13)


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#9 Le 19/11/2023, à 17:50

Nuliel

Re : [Résolu] Chercher dans le contenu de fichiers n'étant pas des .html

La négation dans le find c'est que sur l'option qui suit je crois, donc que sur le -name "azerty"

Hors ligne

#10 Le 20/11/2023, à 07:34

Loposum

Re : [Résolu] Chercher dans le contenu de fichiers n'étant pas des .html

Merci encore pour toutes ces informations !

Hors ligne