#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
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
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.
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 (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
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
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 ).
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.
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