Je veux rechercher une chaîne de texte dans tous les fichiers d'un répertoire (et non dans ses sous-répertoires; je sais que l' -roption fait cela, mais ce n'est pas ce que je veux).
Fonctionnement
grep "string" /path/to/direst censé être en mesure de le faire, j'ai lu, mais cela me donne l'erreur:
grep: dir: est un répertoire
Ensuite, j'ai essayé de courir
grepsur plusieurs fichiers.grep "string" .bashrc .bash_aliasesfonctionne parfaitement.grep "string" .bash*fonctionne comme prévu aussi.grep "string" *me donne les erreurs:grep: data: Is a directory grep: Desktop: Is a directory grep: Documents: Is a directory grep: Downloads: Is a directory ...
Seules les erreurs sont imprimées, je n'ai pas les lignes correspondantes. J'ai essayé d'utiliser l' -soption, mais en vain.
Alors, mes questions:
Pourquoi ne puis-je pas utiliser
grepsur un répertoire, comme dans (1), alors que je devrais pouvoir le faire? J'ai vu cela dans de nombreux exemples sur Internet.
Edit : Quand je dis "utiliser grep sur un répertoire", je veux dire "rechercher dans tous les fichiers de ce répertoire à l'exception de ses sous-répertoires". Je crois que c'est ce que fait grep lorsque vous lui passez un répertoire à la place d'un fichier. Suis-je incorrect?Veuillez me donner une explication sur le fonctionnement de
grepcela qui expliquerait le comportement des commandes dans (2).
Edit : Permettez-moi d'être plus précis. Pourquoi utilise-t-on des caractères génériques pour spécifier plusieurs fichiers dans lesquels rechercher le travail.bash*et non avec*ou même./*?Comment puis-je rechercher tous les fichiers d'un répertoire (et non ses sous-répertoires) en utilisant
grep?
grep "string" .bash*aussi avec .
grep "string" * .* 2>/dev/nullougrep -s "string" * .*
*, appelés globbing. Globbing n'inclut pas les noms de fichiers commençant par un point tel.bashrcque standard. Vous pouvez définir les options du shell pour qu'il inclue ces fichiers, mais vous pouvez vous retrouver dans un désordre si vous ne savez pas ce que vous faites. Un bon guide pour comprendre la globalisation peut être trouvé ici mywiki.wooledge.org/glob