Comment utiliser ack pour rechercher un nom de fichier


15

J'ai commencé à utiliser ack qui est beaucoup plus rapide que grep. Cependant, en utilisant ack, je veux rechercher le nom du fichier plutôt que le contenu du fichier. Y-a-t-il un moyen de faire ça?

Réponses:


16

Utilisez le bon outil pour le bon travail. Si vous souhaitez rechercher un nom de fichier, utilisez 'find':

$ # search for all *.txt file in current directory
$ find . -iname "*.txt"

1
très vrai. "une fois que vous tenez un marteau dans votre main, tout commence à ressembler à un clou" :)
akira

2
Eh bien, ack (et grep) sont plus agréables car vous n'avez pas besoin d'être explicite sur les expressions rationnelles à moins que vous ne le souhaitiez. Je fais habituellement juste unfind . | ack whatev.ext
Ehtesh Choudhury

Cela fonctionne également pour trouver des répertoires.
Pratik Khadloya

1
find et ack se comportent différemment, car ack filtre par défaut un grand nombre de résultats (contenu des répertoires de contrôle de version, objets compilés dans un référentiel source) qui seraient inclus par find. Le meilleur marteau dépend des résultats que vous souhaitez.
Joshua Goldberg

1
Cela ne répond pas à la question ...
lajarre

23
ack -g REGEX

Imprimer les fichiers dont le chemin relatif + le nom de fichier correspondent à REGEX


1
ajouter [^/]*$à votre REGEX pour rechercher dans le nom de fichier uniquement
Simon

7

Je suis d'accord qu'il est logique d'utiliser find si vous recherchez simplement des fichiers * .txt. Cependant, ack possède de puissantes fonctionnalités de détection de type de fichier, vous pouvez donc utiliser

ack -f --perl

qui trouvera tous les fichiers Perl, en fonction du nom de fichier (* .pm, * .pl, * .t et * .pod) et de la ligne shebang.


En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.