commande find et grep

commande find et grep - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 04-07-2003 à 18:35:13    

bonjour,
je cherche la commande qui permet de renvoyer la liste des fichiers qui contiennent un mot donné.
j'essaye avec find et grep mais ça marche pas.
Je cherche le mot hordemgr dans tous les fichiers du disque
 
 
find / -name \*.* |grep hordemgr
 
merci

Reply

Marsh Posté le 04-07-2003 à 18:35:13   

Reply

Marsh Posté le 04-07-2003 à 18:46:02    

fichier + dossier ?
 
pourquoi tu n'utilise pas locate ? (+ rapide une fois la base à jour)
 
sinon find / |grep hordemgr (ou grep -i pour ne pas prendre en compte la casse), ça marche pas ?
 
fichier ?
 
find / -iname hordemgr
 
non ?


Message édité par Mjules le 04-07-2003 à 18:51:07

---------------
Celui qui pose une question est idiot 5 minutes. Celui qui n'en pose pas le reste toute sa vie. |  Membre du grand complot pharmaceutico-médico-scientifico-judéo-maçonnique.
Reply

Marsh Posté le 04-07-2003 à 18:52:09    

--> find / |grep hordemgr
heu non ça me renvoit les fichiers qui contiennent hordemgr dans leurs noms. Moi je veux les fichiers qui contiennent le mot hordemgr dans le fichier lui-meme.


Message édité par horus le 04-07-2003 à 18:55:08
Reply

Marsh Posté le 04-07-2003 à 18:54:09    

Avec un boucle pour et un test, un truc du style
 
for var in `find . -name  "*"` ; do grep hordemgr $var;  if [ $? -eq 0 ]; then echo $var; fi; done
 
Mais ca marche pas terrible :/
 


Message édité par Cruchot le 04-07-2003 à 18:58:56
Reply

Marsh Posté le 04-07-2003 à 18:59:15    

Code :
  1. for var in `find . -name  "*"` ; do grep hordemgr $var;  if [ $? -ne 1 ]; then echo $var >> /tmp/out ; fi; done


 
Ca c'est bon je pense, j'ai pas le tps de trop tester la :/

Reply

Marsh Posté le 04-07-2003 à 18:59:39    

en fait, tu veut ouvrir les fichiers et regarder dedans si il y a le mot hordemgr ?
 
pour un seul dossier :
grep hordemgr *
 
pour plusieurs dossiers, un truc comme ça :
for i in `find ./`; do grep hordmgr $i ; done


---------------
Celui qui pose une question est idiot 5 minutes. Celui qui n'en pose pas le reste toute sa vie. |  Membre du grand complot pharmaceutico-médico-scientifico-judéo-maçonnique.
Reply

Marsh Posté le 04-07-2003 à 19:04:36    

moi je dis : find /  -exec grep "ton_truc" {} \;
ou :
find / | xargs grep "ton_truc"  (mieux nivo perfs : pas plein de threads)

Reply

Marsh Posté le 04-07-2003 à 23:24:11    

[:juju_zero]  
 
grep -l est ton ami :D
 
 
 find / -name "*"  -exec grep -li  hordemgr  {} \;

Reply

Marsh Posté le 04-07-2003 à 23:36:09    

grep -rn hordemgr * 2> /dev/null ;)


---------------
:: Light is Right ::
Reply

Marsh Posté le 05-07-2003 à 07:30:54    

C'est quoi ces solutions faciles avec grep ?  :whistle:  
 

Reply

Marsh Posté le 05-07-2003 à 07:30:54   

Reply

Marsh Posté le 05-07-2003 à 11:25:23    

Cruchot a écrit :

C'est quoi ces solutions faciles avec grep ?  :whistle:  
 
 


 
Vous vous prenez la tete pour rien la ...

Code :
  1. grep -r "mot_que_je_cherche" /


Reply

Marsh Posté le 05-07-2003 à 12:19:39    

CSCMEUH a écrit :


 
Vous vous prenez la tete pour rien la ...

Code :
  1. grep -r "mot_que_je_cherche" /


 


c est ce ke je viens d ecrire plus haut :o
 :whistle:


---------------
:: Light is Right ::
Reply

Marsh Posté le 05-07-2003 à 13:52:10    

tomate77 a écrit :


c est ce ke je viens d ecrire plus haut :o
 :whistle:  


Ouais pardon ;) la tete dans le cul le matin  :pt1cable:

Reply

Marsh Posté le 05-07-2003 à 13:59:26    

CSCMEUH a écrit :


Ouais pardon ;) la tete dans le cul le matin  :pt1cable:  

:D


---------------
:: Light is Right ::
Reply

Marsh Posté le 07-07-2003 à 10:50:13    

merci :)

Reply

Marsh Posté le 07-07-2003 à 11:18:27    

Pour info (ça peut toujours servir, je ne suis pas sur que "grep -r" ne prenne que les fichiers réguliers...), la syntaxe correcte avec find est :
 
find -f -0 | xargs -0 grep toto
 
Voir les man de find/xargs/grep pour plus de détail.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed