« set -o vi : Historique des commandes UNIX | Main | Samba entre hote windows et machine virtuelle vmware »

mardi, juillet 12, 2005

"find" : Recherche plein texte recursive dans les sous repertoire unix

Pour faire l'équivalent d'un "Rechercher" appliqué au sous répertoires d'un repertoire donné,
voici comment faire sous Unix/Linux:

2 solutions:

1) la comande combinée avec "exec":

$find . -exec grep "toto" * '{}' \; -print

Cette commande recherche le mot "toto" dans le contenu de ts les fichier du répertoire courant et des sous-répertoires.

(Attention: ne pas oublier l'espace apres la quote de l' accolade) (Attention: ne pas oublier l'espace apres la quote de l' accolade)

La commande find est tres puissante, elle permet egalement de faire des recherhe par rapport a un nom de fichier, à un type de fichier,

Exemples:

$find . -name arti* -print

recherche tous les fichiers ou repertoire contenant la chaine "arti" dans leur nom.

$find /tmp -type d

recherche tous les repertoires (d-irectory) contenus dans /tmp

2) la boucle (ca impressionne tjs)

$for i in `ls`<entrée>
do<entrée>
cd $i<entrée>
grep "motcherche" *<entrée>
cd ..<entrée>
done<entrée>

Attention: Cete solution ne marche que: si à partir du repertoire courant il n'y a que des sous repertoires qui ne contiennent que des fichiers !

Posté par raph à 15:12
Modifié le: jeudi, juillet 14, 2005 15:13
Categories: Trucs et Astuces Linux/Unix