Je voudrais trouver tous les fichiers qui contiennent une certaine chaîne de texte. Comment faire dans le terminal ?
Je suggère un man grep
pour découvrir toutes les merveilleuses options de grep
Je voudrais trouver tous les fichiers qui contiennent une certaine chaîne de texte. Comment faire dans le terminal ?
Cela liste tous les fichiers qui existent dans le chemin et ajoute : No such file or directory
J'essaie d'obtenir uniquement la liste des occurrences du texte. Comment obtenir cette liste ?
Cela fonctionnera-t-il pour les fichiers que Spotlight n'indexe pas (c'est-à-dire les fichiers contenus dans des dossiers cachés, les fichiers de configuration du système, etc.)
La réponse d'Ignacio est excellente et m'a aidé à trouver les fichiers contenant un certain texte. Le seul problème auquel j'ai été confronté était qu'en exécutant cette commande, tous les fichiers étaient répertoriés, y compris un fichier pour lequel le motif n'apparaissait pas.
No such file or directory
C'est ce que je vois à côté des fichiers qui ne contiennent pas le motif.
Si à la place vous ajoutez -s
à la commande, comme dans : grep -lr "text pattern" ./ -s
; grep -lr "text pattern" [PATH DIRECTORY] -s
est utilisé, il ne vous montrera que les fichiers qui contiennent le motif.
De même, si grep -nr "text pattern" ./ -s
; grep -nr "text pattern" [PATH OF DIRECTORY] -s
est utilisée, elle imprime le fichier ainsi que le numéro de ligne et l'occurrence du motif.
Veuillez me corriger si ma compréhension est erronée.
Référence : Comment faire pour que grep n'affiche pas les erreurs 'No such file or directory' ?
Une autre façon d'éviter ces ennuyeux Aucun fichier de ce type est d'envoyer stderr à null. grep ... 2>/dev/null
. Cette solution fonctionne pour la plupart des programmes, puisqu'ils signalent les messages d'erreur sur le flux stderr, et non stdout. J'ai utilisé cette solution de nombreuses fois avec find
comme il le dira Permission refusée pour de nombreux fichiers.
(1)Si vous obtenez No such file or directory
pour des fichiers qui existent, soit vous faites quelque chose de mal, soit votre système est défaillant.(2)Que fait le [PATH OF PARENT]
ont à voir avec quoi que ce soit ?
G-Man, j'ai modifié la réponse pour indiquer [PATH OF DIRECTORY]
juste au cas où quelqu'un d'inconnu voudrait savoir pourquoi j'ai mis ./
SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.
0 votes
Mais si vous voulez un résultat rapide, utilisez Spotlight. De même, si vous voulez trouver des fichiers qui ne contiennent pas nécessairement du texte directement dans le fichier, comme les fichiers PDF ou ODF.
0 votes
Bon conseil, mais dans mon cas, je ne suis pas sûr que les fichiers soient indexés puisqu'ils sont sur des pilotes réseau. Et aussi ce sont des fichiers xml appartenant à un programme particulier.
0 votes
Jetez un coup d'œil à unix.stackexchange.com/a/37932/213832 cette solution fonctionne bien