Linux-Mandrake: Manuel de référence | ||
---|---|---|
Page précédente | Page suivante |
Ce chapitre présentera un petit nombre d'outils en ligne de commande qui peuvent s'avérer utiles au quotidien. Bien sûr, passez ce chapitre si vous pensez n'utiliser qu'un environnement graphique. Un rapide coup d'œil peut vous faire changer d'avis :-)
Ce chapitre se contente de lister les utilitaires des plus utilisés aux plus obscurs. Chaque commande sera illustrée par un exemple, mais comme exercice, vous pourrez lui trouver des usages encore plus intéressants.
D'accord, le nom n'est pas très pratique, pas plus que son acronyme, mais son utilisation est très simple : il cherche un motif donné en argument dans un ou plusieurs fichiers. Sa syntaxe est :
grep [options] <motif> [un ou plusieurs fichier(s)] |
Si on a précisé plusieurs noms de fichiers, ceux-ci apparaîtront en début des lignes et rempliront les critères du motif, à moins qu'on n'ait utilisé l'option -h. L'option -l, quant à elle, a pour effet de n'afficher que le nom des fichiers dont au moins une ligne remplit les conditions du motif. Il est parfois utile, lorsque la liste des arguments est longue, de parcourir les fichiers à l'intérieur d'une boucle du shell et d'utiliser l'astuce suivante : grep <motif> <nom_de_fichier> /dev/null. Le motif est une expression rationnelle, bien que la plupart du temps il ne consiste qu'en un simple mot. Les options les plus couramment utilisées sont les suivantes :
-i : Rechercher en ignorant la casse (ou capitalisation).
-v : Inverser la recherche : trouver les lignes ne correspondant pas au motif.
-n : Afficher le numéro de ligne pour chaque ligne trouvée.
-w : Dit à grep que le motif doit correspondre à un mot entier. Attention, les caractères considérés comme pouvant faire partie d'un mot dépendent du réglage de la langue.
Voici un exemple d'utilisation :
$ cat mon_papa Hello dad Hi daddy So long dad # Chercher la chaîne "hi", peu importe la casse $ grep -i hi victim Hi daddy # Chercher "dad" comme un mot entier, et afficher # le numéro de ligne en face de chaque ligne # correspondante $ grep -nw dad victim 1:Hello dad 3:So long dad # Chercher toutes les lignes ne commençant pas # par un "H" $ grep -v "^H" victim So long dad $ |
Si vous voulez utiliser grep dans un tube, vous n'avez pas à spécifier de nom de fichier, car par défaut, il prend son entrée depuis l'entrée standard. De même, par défaut, il affiche les résultats sur la sortie standard, donc vous pouvez sans crainte mettre la sortie de grep dans un autre tube. Par exemple :
$ cat /usr/doc/HOWTO/Parallel-Processing-HOWTO | \ grep -n thread | less |
Page précédente | Début | Page suivante |
Remerciements | find : rechercher des fichiers selon certains critères |