Cómo usar ack para buscar el nombre del archivo


15

He comenzado a usar ack, que es mucho más rápido que grep. Sin embargo, usando ack, quiero buscar el nombre del archivo en lugar del contenido del archivo. ¿Hay una manera de hacer eso?

Respuestas:


16

Usa la herramienta correcta para el trabajo correcto. Si desea buscar el nombre del archivo, use 'buscar':

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

1
muy cierto. "una vez que sostienes un martillo en la mano, todo comienza a parecerse a un clavo" :)
akira

2
Bueno, ack (y grep) son mejores porque no tienes que ser explícito sobre las expresiones regulares a menos que quieras. Usualmente solo hago unfind . | ack whatev.ext
Ehtesh Choudhury

Esto funciona para encontrar directorios también.
Pratik Khadloya

1
find y ack se comportan de manera diferente, ya que ack filtra muchos resultados de forma predeterminada (contenido de directorios de control de versiones, objetos compilados en un repositorio de origen) que se incluirían en find. El mejor martillo depende de los resultados que desee.
Joshua Goldberg

1
Esto no responde a la pregunta ...
lajarre

23
ack -g REGEX

Imprimir archivos donde la ruta relativa + nombre de archivo coincide con REGEX


1
agregue [^/]*$a su REGEX para buscar solo en el nombre de archivo
simon

7

Estoy de acuerdo en que tiene sentido usar find si solo está buscando archivos * .txt. Sin embargo, ack tiene potentes funciones de detección de tipo de archivo, por lo que puede usar

ack -f --perl

que encontrará todos los archivos Perl, basados ​​en el nombre del archivo (* .pm, * .pl, * .t y * .pod) y la línea shebang.


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.