Como usar o ack para procurar o nome do arquivo


15

Comecei a usar o ack, que é muito mais rápido que o grep. No entanto, usando ack, quero procurar o nome do arquivo em vez do conteúdo do arquivo. Existe uma maneira de fazer isso?

Respostas:


16

Use a ferramenta certa para o trabalho certo. Se você deseja procurar pelo nome do arquivo, use 'find':

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

1
muito verdadeiro. "Uma vez que você segura um martelo em sua mão tudo começa a parecer com um prego" :)
akira

2
Bem, ack (e grep) são melhores, porque você não precisa ser explícito sobre regexes, a menos que queira. Eu costumo fazer umfind . | ack whatev.ext
Ehtesh Choudhury

Isso funciona para encontrar diretórios também.
Pratik Khadloya

1
find e ack se comportam de maneira diferente, já que o ack filtra muitos resultados por padrão (conteúdo dos diretórios de controle de versão, objetos compilados em um repositório de origem) que seriam incluídos pelo find. O melhor martelo depende dos resultados desejados.
Joshua Goldberg

1
Isso não está respondendo à pergunta ...
lajarre

23
ack -g REGEX

Imprimir arquivos onde o caminho relativo + nome do arquivo corresponde ao REGEX


1
adicione [^/]*$ao seu REGEX para pesquisar apenas no nome do arquivo
simon

7

Concordo que faz sentido usar o find se você estiver apenas procurando por arquivos * .txt. No entanto, o ack possui recursos avançados de detecção de tipo de arquivo, para que você possa usar

ack -f --perl

que encontrará todos os arquivos Perl, com base no nome do arquivo (* .pm, * .pl, * .t e * .pod) e na linha shebang.


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.