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 06/11/2009, à 11:49

naoli

ls dans grep

Bonjour à tous,

je cherche à chercher (!) à l'intérieur de fichiers en ligne de commande, facile : grep, mais uniquement dans certains fichiers.

Exemple dans tous ceux qui ont toto et tata dans le nom :

ls *toto*tata*

me donne les fichiers mais

ls *toto*tata* | grep -n machaine

ne fonctionne pas car grep cherche du coup sur les noms de fichiers qui sortent.

Une idée ? smile


Convainquez vos amis de changer pour Linux ! http://change-for-linux.tuxfamily.org

Hors ligne

#2 Le 06/11/2009, à 11:51

quatrecouleurs

Re : ls dans grep

ben "cat | grep" non ?
ou "sed" ?


Commandes de base au terminal : http://doc.ubuntu-fr.org/tutoriel/conso … es_de_base (!!!)  ///  Ubuntu au clavier http://inx.maincontent.net/index.html  ///  Mon photoblog : http://quatrecouleurs.blogspot.com/

Hors ligne

#3 Le 06/11/2009, à 11:54

Look&Feel

Re : ls dans grep

ou un :

cat `ls *toto*tata` | grep "truc"

Dernière modification par Look&Feel (Le 06/11/2009, à 11:55)

Hors ligne

#4 Le 06/11/2009, à 12:07

naoli

Re : ls dans grep

Look&Feel a écrit :

ou un :

cat `ls *toto*tata` | grep "truc"

Yop.

Merci. Mais ce qui m'embête c'est que du coup, je n'ai pas le fichier dans lequel se retrouve ma chaine, juste la ligne éventuellement, puisque cat sors tout à la suite.

Dernière modification par naoli (Le 06/11/2009, à 12:08)


Convainquez vos amis de changer pour Linux ! http://change-for-linux.tuxfamily.org

Hors ligne

#5 Le 06/11/2009, à 12:27

FRUiT

Re : ls dans grep

find . -name "masque" -exec grep -i -H "motif" {} \;

Neon Suite by FRUiT (kde4.6) [url]http://[Merci de relire les règles]/yzm7cee[/url]
"Pour la carotte, le lapin est la plus parfaite incarnation du mal" (R. Sheckley)
clean

Hors ligne

#6 Le 06/11/2009, à 12:36

zapple

Re : ls dans grep

C'est l'option -l de grep qui affiche les fichiers, et non -i -H. Tu tapes la commande :

find /repertoire -type f -name '*toto*tata' -exec grep -l machaine {} \;

Hors ligne

#7 Le 06/11/2009, à 12:38

FRUiT

Re : ls dans grep

Sauf que il veut chercher DANS les fichiers...

...


Neon Suite by FRUiT (kde4.6) [url]http://[Merci de relire les règles]/yzm7cee[/url]
"Pour la carotte, le lapin est la plus parfaite incarnation du mal" (R. Sheckley)
clean

Hors ligne

#8 Le 06/11/2009, à 12:43

zapple

Re : ls dans grep

Ben la commande find recherche dans les fichiers avec toto et tata dans le nom du fichier et fait un grep de la chaine "machaine", et ca affiche les fichiers dans lesquels la chaine apparait.

Dernière modification par zapple (Le 06/11/2009, à 12:46)

Hors ligne

#9 Le 06/11/2009, à 14:30

naoli

Re : ls dans grep

OK, super ! smile

merci à vous.


Convainquez vos amis de changer pour Linux ! http://change-for-linux.tuxfamily.org

Hors ligne

#10 Le 06/11/2009, à 19:21

Ferod

Re : ls dans grep

grep -n tachaine *toto* *tata*

Bon par contre il faut que tout tes fichiers toto et tata soit dans le répertoire où tu exécute la commande. Ca ne va pas rechercher le fichier toto qui est dans le 45 sous dossier. wink

Dernière modification par Ferod (Le 06/11/2009, à 19:23)


"When I was in the military, they gave me a medal for killing
two men, and a descharge for loving one !" Leonard Matlovich

Hors ligne

#11 Le 07/11/2009, à 08:43

naoli

Re : ls dans grep

Oui c'est ça qui est dommage big_smile Mais la commande find est pas mal wink

Merci encore.


Convainquez vos amis de changer pour Linux ! http://change-for-linux.tuxfamily.org

Hors ligne