Si vous voulez un résultat rapide, utilisez Spotlight. De même, si vous souhaitez rechercher des fichiers qui ne stockent pas nécessairement du texte directement dans le fichier, tels que PDF ou ODF.
Joey
Bon conseil, mais dans mon cas, je ne suis pas sûr que les fichiers sont indexés car ils sont sur des pilotes réseau. Et aussi ce sont des fichiers XML appartenant à un programme particulier.
Je vous suggère man grepde découvrir toutes les merveilleuses options de grep
Ludovic Kuty
Ceci 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 de texte. Comment pouvons-nous obtenir cette liste?
Cela fonctionnera-t-il pour les fichiers que Spotlight n'indexe pas (par exemple, les fichiers contenus dans des dossiers cachés, les fichiers de configuration système, etc.)?
Peter Berg
Grep ne semble pas analyser les fichiers .xlsx, mais cela a bien fonctionné. Un autre exemple simple: mdfind -onlyin. "searchtext"
Vous pouvez choisir l’un des choix ci-dessous en fonction de vos goûts et de vos besoins. En supposant que vous ayez besoin de rechercher des fichiers contenant du texte - "asynchrone", de manière récursive dans le répertoire courant, vous pouvez le faire de l’une des façons suivantes:
La réponse d'Ignacio est excellente et m'a aidé à trouver les fichiers contenant certains textes. Le seul problème auquel je faisais face était que lors de l'exécution de cette commande, tous les fichiers étaient répertoriés, y compris celui pour lequel le modèle 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 au lieu de cela vous ajoutez -sà la commande, comme dans
grep -lr "text pattern" ./ -s:; grep -lr "text pattern" [PATH DIRECTORY] -sest utilisé, il ne vous montrera que les fichiers contenant le motif.
De même si grep -nr "text pattern" ./ -s; grep -nr "text pattern" [PATH OF DIRECTORY] -sCette commande est utilisée, elle affiche le fichier ainsi que le numéro de ligne et l'occurrence du motif.
S'il vous plaît corrigez-moi si ma compréhension est fausse.
Une autre façon d'éviter ces satanés Aucun fichier d' erreurs est de tuyau stderr à null. grep ... 2>/dev/null. Cette solution fonctionne pour la plupart des programmes, car ils signalent des messages d'erreur sur le flux stderr, et non sur stdout. J'ai utilisé cette solution à plusieurs reprises avec find, comme il sera dit, une autorisation refusée pour de nombreux fichiers.
jpaugh
(1) Si vous recevez des No such file or directorymessages pour des fichiers existants, soit vous faites quelque chose de mal, soit votre système est en panne. (2) Qu'est-ce qui [PATH OF PARENT]a à voir avec quoi que ce soit?
G-Man
@ G-Man, j'ai modifié la réponse pour indiquer [PATH OF DIRECTORY]que quelqu'un qui ne connaissait pas bien voulait savoir pourquoi j'avais mis./
CP3O, le
@ G-Man J'utilise un Mac, pas Ubuntu, je ne sais pas comment mon système serait en panne, je n'ai presque rien fait pour le moment.
Réponses:
la source
man grep
de découvrir toutes les merveilleuses options de grepNo such file or directory
J'essaie d'obtenir uniquement la liste des occurrences de texte. Comment pouvons-nous obtenir cette liste?grep -lr "text pattern" ./ -s
;grep -lr "text pattern" [PATH OF PARENT] -s
utiliser les projecteurs
n'oubliez pas de regarder:
la source
brew install ack ack "text goes here"
find . |grep "text goes here"
grep -RnslI "text goes here"
la source
Vous pouvez choisir l’un des choix ci-dessous en fonction de vos goûts et de vos besoins. En supposant que vous ayez besoin de rechercher des fichiers contenant du texte - "asynchrone", de manière récursive dans le répertoire courant, vous pouvez le faire de l’une des façons suivantes:
Utiliser grep
En utilisant ack
la source
La réponse d'Ignacio est excellente et m'a aidé à trouver les fichiers contenant certains textes. Le seul problème auquel je faisais face était que lors de l'exécution de cette commande, tous les fichiers étaient répertoriés, y compris celui pour lequel le modèle 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 au lieu de cela vous ajoutez
-s
à la commande, comme dansgrep -lr "text pattern" ./ -s
:;grep -lr "text pattern" [PATH DIRECTORY] -s
est utilisé, il ne vous montrera que les fichiers contenant le motif.De même si
grep -nr "text pattern" ./ -s
;grep -nr "text pattern" [PATH OF DIRECTORY] -s
Cette commande est utilisée, elle affiche le fichier ainsi que le numéro de ligne et l'occurrence du motif.S'il vous plaît corrigez-moi si ma compréhension est fausse.
Référence: Comment faire pour que grep ne puisse pas imprimer les erreurs «Aucun fichier ou répertoire»?
la source
grep ... 2>/dev/null
. Cette solution fonctionne pour la plupart des programmes, car ils signalent des messages d'erreur sur le flux stderr, et non sur stdout. J'ai utilisé cette solution à plusieurs reprises avecfind
, comme il sera dit, une autorisation refusée pour de nombreux fichiers.No such file or directory
messages pour des fichiers existants, soit vous faites quelque chose de mal, soit votre système est en panne. (2) Qu'est-ce qui[PATH OF PARENT]
a à voir avec quoi que ce soit?[PATH OF DIRECTORY]
que quelqu'un qui ne connaissait pas bien voulait savoir pourquoi j'avais mis./