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 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