#1 Le 23/09/2019, à 16:25
- Nuliel
[Résolu] récupérer nom fichier avec *
Bonjour,
Voici la commande type que je voudrais passer
strings * | (echo NomDuFichier;grep DuTexte)
* sert à parcourir tous les fichiers du dossier. Comment faire pour récupérer le nom du fichier sur lequel on travaille à ce moment?
Ou suis je obligé de passer par un truc du style
for file in *; do (echo $file; strings $file | grep DuTexte);done
?
Edit: je viens de voir que je m'embête pour rien, il y a l'option -H de grep pour ça...
Du coup
grep -H DuTexte *
ben ça marche
Et la première commande ne pouvait pas marcher vu qu'on envoie tout en bazar dans le pipe.
Dernière modification par Nuliel (Le 23/09/2019, à 16:33)
Hors ligne
#2 Le 23/09/2019, à 16:42
- kamaris
Re : [Résolu] récupérer nom fichier avec *
L'option -f de strings te permet de faire précéder chaque ligne par le nom du fichier auquel elle appartient. Donc si le format sorti par strings te convient, un simple
strings -f * | grep 'DuTexte'
te sortira l'information recherchée, sous la forme
fichier: […]DuTexte[…]
Si le format ne te convient pas, il faut le retravailler, par exemple avec awk.
EDIT : j'avais pas vu ton edit entre deux, tant pis.
Dernière modification par kamaris (Le 23/09/2019, à 16:48)
Hors ligne
#3 Le 23/09/2019, à 16:45
- Nuliel
Re : [Résolu] récupérer nom fichier avec *
Merci kamaris! Je ne connaissais pas l'option -f de strings, ta solution reste simple, donc j'aime bien!
Yep, j'ai trouvé une autre solution entre deux.
Dernière modification par Nuliel (Le 23/09/2019, à 16:45)
Hors ligne