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 19/06/2020, à 22:25

gorosk

[RESOLU] recherche approfondie du contenu d'un fichier

Bonjour,
je souhaiterais savoir s'il existe une ligne de commande permettant d'identifier un fichier sur la base de son contenu.
Je vais mieux m'expliquer.
Si j'utilise la commande

find /home -iname *nomdefichier*

le terminal rend le/les fichiers nommés nomdefichier.
Or, imaginez que j'ai un fichier dont le nom m'échappe mais que je suis sûre et certaine qu'il contient, entre autre, l'expression "le père Noël".
Existe-t-il une ligne de commande permettant de retrouver le fichier tapant une partie de son contenu, dans mon exemple "le père Noêl"?
Merci,
Julie

Dernière modification par gorosk (Le 22/06/2020, à 08:57)

Hors ligne

#2 Le 19/06/2020, à 22:29

Nuliel

Re : [RESOLU] recherche approfondie du contenu d'un fichier

Oui,

grep -R 'le père noel' ~

recherche récursivement dans le dossier personnel (~ , qui peut être changé pour autre chose) la chaîne 'le pere noel'
On peut aussi filtrer le retour pour n'afficher que le nom du fichier
Par contre ça peut être très long.

grep est un outil formidable smile

Dernière modification par Nuliel (Le 19/06/2020, à 22:33)

Hors ligne

#3 Le 20/06/2020, à 00:19

kamaris

Re : [RESOLU] recherche approfondie du contenu d'un fichier

Petites précisions :
- l'option -R ira chercher récursivement y compris dans les liens symboliques, ce qui n'est en général pas voulu : utiliser -r dans ce cas ;
- grep est sensible à la casse par défaut : pour trouver « le père Noël », il faut mettre l'option -i ;
- à fortiori les caractères e, ë, et ê (utilisé aussi dans le message de gorosk) sont différents : pour tous les trouver, il faut utiliser la classe de caractères [=e=] (avec pour langue du terminal le français).

Au final, ça donnerait donc :

grep -ir 'le père no[[=e=]]l' ~

Mais si on est sûr de la typographie, on peut se contenter de

grep -r 'le père Noël' ~

Hors ligne

#4 Le 20/06/2020, à 01:35

moko138

Re : [RESOLU] recherche approfondie du contenu d'un fichier

kamaris a écrit :

utiliser la classe de caractères [=e=] (avec pour langue du terminal le français).

grep -ir 'le père no[[=e=]]l' ~

"la classe de caractères", je ne connaissais pas : super !
Merci kamaris !  smile


%NOINDEX%
Un utilitaire précieux : ncdu
Photo, mini-tutoriel :  À la découverte de dcraw

Hors ligne

#5 Le 20/06/2020, à 01:53

MicP

Re : [RESOLU] recherche approfondie du contenu d'un fichier

Hors ligne

#6 Le 20/06/2020, à 09:50

kamaris

Re : [RESOLU] recherche approfondie du contenu d'un fichier

moko138 a écrit :

"la classe de caractères", je ne connaissais pas : super !
Merci kamaris !  smile

De rien, mais précisément, il vaudrait mieux ne pas appeler ça une classe de caractères, pour ne pas faire la confusion avec les expressions du type [:alpha:] (= A-Za-z) ou [:alnum:] (= A-Za-z0-9), pour lesquelles ce terme est bien adapté.
Dans le cas de [=e=], il vaudrait mieux parler de classe d'équivalence (de caractères), dont « e » apparait comme le représentant « canonique », en tant qu'il est ascii.

Cf. wikipédia, dont je trouve que la page sur les regex est une bonne introduction et un bon aide-mémoire : https://fr.wikipedia.org/wiki/Expressio … t%C3%A8res
(le pire, c'est que j'y ai regardé hier, mais évidemment, j'ai fait l'erreur quand même roll)


MicP a écrit :

big_smile

Hors ligne

#7 Le 20/06/2020, à 11:07

Hizoka

Re : [RESOLU] recherche approfondie du contenu d'un fichier

kamaris : Merci pour le [=e=] !! C'est génial !


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

Hors ligne

#8 Le 20/06/2020, à 12:49

kamaris

Re : [RESOLU] recherche approfondie du contenu d'un fichier

Eh bien elles auront fait des heureux ces classes d'équivalence ! wink

Dernière modification par kamaris (Le 20/06/2020, à 12:49)

Hors ligne

#9 Le 22/06/2020, à 08:56

gorosk

Re : [RESOLU] recherche approfondie du contenu d'un fichier

Que dire...un grand merci à vous tous!
Julie

Hors ligne

#10 Le 22/06/2020, à 09:33

FrancisFDZ

Re : [RESOLU] recherche approfondie du contenu d'un fichier

Bonjour,
Si on ne cherche que le nom des fichiers contenant une expression donnée, ne conviendrait-il pas d'utiliser l'option "-l"

grep -l "le père noël" *

Avec si besoin "-r" si la recherche est récursive (nonobstant les autres propositions, au demeurant excellentes,proposées par kamaris !) smile


-- On peut avoir des raisons de se plaindre et n'avoir pas raison de se plaindre --
[Victor Hugo]

Hors ligne