Recherchez-vous un nom de fichier ou un mot dans un fichier? grep recherche dans les fichiers, ce qui semble être ce que vous voulez.
grep utilise des expressions régulières - en fait, c'est ce que la partie "re" représente. Ainsi, il n'utilise pas les caractères génériques bash normaux; c'est-à-dire, abc*
ne trouverait pas de mots commençant par abc, il trouverait des mots commençant par ab, puis zéro ou plusieurs c suivants. Mais oui, si vous lui donnez simplement un modèle, il le trouvera n'importe où, sans connaissance de mots entiers. Si vous vouliez trouver des mots entiers, vous auriez besoin de créer une expression régulière pour le dire.
Mais, comme la plupart des commandes, vous devez mettre le (s) nom (s) de fichier à la fin de la commande, donc votre exemple resterait là et attendrait le nom de fichier.
Comme l'a dit @plink, utilisez
grep -r -o -i "your_string" *
(ou *.*
, ou autre spécification de fichier). Les erreurs peuvent être ignorées. Si vous obtenez beaucoup d'erreurs, vous pouvez ajouter 2>/dev/null
à la fin, ce qui redirigera stderr vers un périphérique nul.
grep -r -o -i "your_string" *
(avec "guillemets").