Ack: uno strumento raffinato per curiosare nei file di testo

Nel mondo unix lo strumento principe per cercare stringhe nei file di testo e' sempre stato grep

Il programma grep (acronimo di global / regular expression / print) e' uno strumento che non puo' mancare nella cassetta degli attrezzi di uno sviluppatore. Anni e anni di sviluppo ne hanno affinato le potenzialita'. La pagina di manuale di grep e' una vera fonte di nuovi ed interessanti utilizzi per questo capolavoro di software.

Nel mio lavoro mi sono spesso giovato dalla definizione di un alias che mi permette di adattare grep alle mie esigenze:

[ale@chandra ~]$grep grep .bashrc
alias grep="grep --color --exclude-dir=.svn --exclude={*.pyc,*~,*.pyo}"

Questo alias mi garantisce un output colorato, esclude le directory svn e file che non mi interessano.

Nonostante il mio infinito rispetto per grep, ultimamente devo ammettere di usarlo meno del solito. La regione di tutto cio' e' che ho cominciato ad usare ack (link).

Ack, a differenza di grep, e' meno "general purpose": mentre grep cerca in ogni file, ack evita di perdere tempo in file binary, in cartelle di sistemi di revisione del codice (svn, git, mercurial, ecc...) e in file di backup. Inoltre ha gia' di default l'output colorato, e la cosa non guasta di certo! Praticamente tutte le cose che ho dovuto specificare nel mio alias, ack le fa di default. Ma non e' finita :)

Caratteristica peculiare di ack e' la possibilita' specificare tipi di file per gruppi. Per esempio uno sviluppatore plone trarra' vantaggio dall'opzione --plone (che restringe la ricerca a file con estensione py, cpy, pt, metadata, ecc... ) mentre uno sviluppatore c++ potra usare il flag --cpp (che ricerca nei file cpp, cc, h ecc...). Ovviamente tali gruppi sono personalizzabili.

Come se non bastasse, ack di default analizza ricorsivamente la directory corrente, mentre grep di default analizza lo standard input, cosa che si adatta sicuramente di piu' alle mie esigenze.

Ma non voglio andare oltre nell'illustrarvi le peculiarita' di questo software. Mi limito ad invitarvi a provarlo sicuro che anche voi, come me, ne apprezzerete la comodita'.

Ack homepage: http://petdance.com/ack/

Nessun commento: