ack: un grep (molto) migliorato

| No Comments

È da un po' di tempo che mi riprometto di scrivere qualche riga in italiano a proposito di ack. Benché sia disponibile in molte distribuzioni Linux, questo software non è ancora così largamente conosciuto dagli utenti.

Si tratta di un sostituto, alquanto migliorato, del noto comando grep disponibile in pratica su ogni Unix esistente. I vantaggi consistono in una serie di feature aggiuntive, e in una configurazione di default che fa quasi sempre "ciò che si desidera" (con grep, infatti, è spesso scontato dovergli passare una serie di flag per farlo comportare come ci si aspetta).

Ispirandomi alla lista indicata sul sito ufficiale, ecco un po' di ragioni per utilizzare ack:

  • Colora i risultati delle ricerche, rendendoli chiari e leggibili.
  • Di default, ricerca in maniera ricorsiva.
  • Ignora (di default) le directory .svn, .git, CVS e tutte quelle dei più conosciuti software di VCS: personalmente, non mi sono mai imbattuto nella necessità di ricercare in quelle directory, e dubito ciò accadrà mai. Questa impostazione, chiaramente, causa un notevole aumento della velocità di esecuzione nel checkout di un VCS.
  • Ignora in automatico file all'interno dei quali è difficile che si desideri ricercare (binari, file di backup tipo pippo~ e #pippo#, core dump, ... È chiaramente possibile forzare la ricerca in tutti i file tramite lo switch -a.
  • Permette, in maniera semplice, di indicare il tipo di file da cercare. Ad esempio --perl cerca in file con estensione .pl, .pm e .pod e in quelli senza estensione aventi una shebang riconducibile a Perl (insomma in tutto ciò che si sospetta sia perlish); è possibile anche escludere un determinato linguaggio (ad es. --nopython). Per fare ciò utilizzando grep c'è un po' da scrivere... ;-)
  • Permette di utilizzare le regular expression di Perl, più complete del subset GNU utilizzato da grep.
  • Possibilità di trovare facilmente tutti i file di un determinato tipo. Ad esempio, ack -f -html cerca in maniera ricorsiva tutti i file HTML (_.htm_, .html, ...) e ne visualizza la lista.
  • Molti switch sono uguali a quelli di grep, quindi l'utilizzo ack dovrebbe risultare intuitivo si dall'inizio.
  • È in Perl, senza parti compilate, quindi gira perfettamente ovunque (anche su Windows, sì!).

Per installarlo, scaricatelo dal sito ufficiale o, se usate Linux, cercatelo tra i pacchetti della vostra distribuzione. Ad esempio su Gentoo esiste l'ebuild ack, mentre su Ubuntu/Debian è presente il pacchetto ack-grep.

Leave a comment

About this Entry

This page contains a single entry by Michele Beltrame published on November 5, 2009 11:41 AM.

Italian Perl Workshop 2009: resoconto di un organizzatore was the previous entry in this blog.

Associazione Perl.It: le tessere is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.

Categories

Pages

OpenID accepted here Learn more about OpenID
Powered by Movable Type 5.14-en