Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites". Attention, le forum rencontre actuellement quelques difficultés. En cas d'erreur 502, il ne faut pas re-valider l'envoi d'un message ou l'ouverture d'une discussion, au risque de créer un doublon.

La section divers se réorganise ! De nouvelles sous-sections à venir. (plus d'infos + donner son avis)

#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) http://tinyurl.com/yzm7cee
"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) http://tinyurl.com/yzm7cee
"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