Pages : 1
#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 ?
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
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 !
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.
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 Mais la commande find est pas mal
Merci encore.
Convainquez vos amis de changer pour Linux ! http://change-for-linux.tuxfamily.org
Hors ligne
Pages : 1