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 20/09/2018, à 17:28

Piteur

Recherche d'une chaîne dans un ensemble de fichiers

Bonjour.

J'ai eu à utiliser récemment la commande suivante, notée "en aveugle" dans l'une de mes petites fiches pratiques :

sudo find . -type f -exec grep TexteRecherche {} \;

J'étais à la recherche d'un lanceur présent dans le Menu Whisler (in Xubuntu 16.04 LTS), ne fonctionnant pas, ET parfaitement invisible avec Alacarte ou Menulibre, dont je savais a priori qu'il devait contenir une chaîne XYZ, c'est à dire le nom affiché (j'ai fait : sudo find . -type f -exec grep XYZ {} \;). J'ai procédé de proche en proche : en partant de la racine / et en arrivant finalement au dossier où se trouvait ce "foutu" lanceur à la fois inopérant et "invisible" pour les logiciels d'édition de menu que je connais.

J'ai procédé de proche en proche (du dossier-racine au dossier contenant le fichier repéré) car le résultat de la commande m'indique que la chaîne a été trouvée dans le dossier où je me trouve (ou ses sous-dossiers), mais pas dans quel fichier. Il m'aurait été plus facile d'obtenir en affichage le nom (voire l'emplacement et le nom) du fichier qui avait été repéré. Mais je ne sais pas comment écrire la commande qu'il faut pour cela : quelqu'un saurait-il me le dire (et éventuellement, m'expliquer sa proposition) ?

Bref, comment formuler en ligne de commande la requête : quel fichier, avec son chemin, contient telle chaîne de caractères dans le dossier en cours et ses sous-dossiers ?

Merci beaucoup.

Dernière modification par Piteur (Le 20/09/2018, à 17:31)


Newbie parfait avec (x)Ubuntu : soyez patient(e). Grand merci !
PC de bureau - Carte MSI B150M PRO-VDH - Core I5 6500 - Ram 16 Go - Windows 10 Famille / Xubuntu 18.04.5 LTS (dual boot par Grub)
Acer Aspire 5733Z - Linux Mint 20 (XFCE)
AsusPro P2520LA - Xubuntu 20.04 LTS

Hors ligne

#2 Le 20/09/2018, à 17:34

pingouinux

Re : Recherche d'une chaîne dans un ensemble de fichiers

Bonjour,
Si j'ai bien compris ce que tu veux, essaye :

sudo find . -type f -exec grep TexteRecherche {} \; -print

Hors ligne

#3 Le 20/09/2018, à 18:08

Postmortem

Re : Recherche d'une chaîne dans un ensemble de fichiers

Salut,

grep suffit, enfin, si c'est GNU grep :

sudo grep -r 'TexteRecherche' /

Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »

Hors ligne

#4 Le 20/09/2018, à 18:45

diesel

Re : Recherche d'une chaîne dans un ensemble de fichiers

J'aurais tendance à proposer :

sudo grep -r -l 'TexteRecherche' /

Amicalement.

Jean-Marie


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

#5 Le 20/09/2018, à 19:05

pingouinux

Re : Recherche d'une chaîne dans un ensemble de fichiers

@Postmortem et diesel83140 : Vous avez bien sûr raison, je n'y pense jamais à ce grep -rsmile

Hors ligne

#6 Le 20/09/2018, à 20:06

Postmortem

Re : Recherche d'une chaîne dans un ensemble de fichiers

Sinon, si on repart de la commande du début, on peut plutôt faire ça :

sudo find . -type f -exec grep TexteRecherche {} +

Contrairement à la version avec "\;", grep ne sera pas appelé une fois par fichier. Et du coup, il affichera le nom du fichier où la chaîne a été trouvé, en plus de la ligne contenant cette chaîne.


Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »

Hors ligne

#7 Le 21/09/2018, à 19:56

grigouille

Re : Recherche d'une chaîne dans un ensemble de fichiers

Autre variante :

sudo find . -type f | xargs grep TexteRecherche

Debian (xfce) 12
HP LaserJet M1132 MFP

Hors ligne