Come usare ack per cercare il nome del file


15

Ho iniziato a usare ack che è molto più veloce di grep. Comunque usando ack voglio cercare il nome del file piuttosto che il contenuto del file. C'è un modo per farlo?

Risposte:


16

Usa lo strumento giusto per il lavoro giusto. Se vuoi cercare il nome del file, usa 'trova':

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

1
Verissimo. "una volta che hai in mano un martello tutto inizia a sembrare un chiodo" :)
Akira

2
Bene, ack (e grep) sono più belli perché non devi essere esplicito sulle regex a meno che tu non voglia. Di solito faccio solo unfind . | ack whatev.ext
Ehtesh Choudhury

Questo funziona anche per la ricerca di directory.
Pratik Khadloya,

1
find e ack si comportano diversamente poiché ack filtra molti risultati per impostazione predefinita (contenuto delle directory di controllo versione, oggetti compilati in un repository di origine) che sarebbero inclusi da find. Il miglior martello dipende dai risultati desiderati.
Joshua Goldberg,

1
Questo non risponde alla domanda ...
lajarre il

23
ack -g REGEX

Stampa i file in cui il percorso relativo + nome file corrisponde a REGEX


1
aggiungi [^/]*$al tuo REGEX per cercare solo nel nome del file
simon

7

Sono d'accordo che abbia senso usare find se stai solo cercando file * .txt. Tuttavia, ack ha potenti funzionalità di rilevamento del tipo di file, quindi puoi usarlo

ack -f --perl

che troverà tutti i file Perl, basati sia sul nome del file (* .pm, * .pl, * .t e * .pod) che sulla riga shebang.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.