Ack tutorial

Ack è un’programma che serve per cercare del testo all’interno di file.

La prima cosa che viene in mente è che fa la stessa cosa di grep, ed infatti è così, ma ack è più orientato allo sviluppatore ovvero fa quello che un programmatore si aspetterebbe.

Se si usa ack in automatico si ha la colorazione dell’output, si evita di cercare nelle directory nascoste .svn, .git ed utilizza le espressioni regolari di perl senza bisogno di specificare parametri aggiuntivi (vedi il mio post su grep).

Ma veniamo al tutoria su Ack

  • installazioneci sono molti modi per installare ack e tutti ben spiegati sul sito originale.
    sotto linux si può procedere con

    cpan App::Ack

    oppure su una distribuzione ubuntu like installando il pacchetto ack-grep con

    sudo apt-get install ack-grep
  • esempiper trovare la sottostringa print in una cartella ricorsivamente
    $>ack print
    Capitolo10/Bookmark.java
     45:            exception.printStackTrace();
    Capitolo10/CustomWorld.java
     48:         exception.printStackTrace();
    Capitolo10/ResourceTest.java
     75:            exception.printStackTrace();
    Capitolo10/SystemInfo.java
     19:         exception.printStackTrace();
    Capitolo10/WebStartCalculator.java
     101:            PrintStream printOut = new PrintStream(out);

    per trovare invece solo la parola print

    $>ack -w print

    oppure

    $>ack '\bprint\b' (usando la sintassi perl)

    per trovare tutti i file java in un progetto

    ack -f --java

    (segue la lista di tutti i file java)

    inoltre mi sono tornate molto utili le opzioni -1 e -m1 che si fermano rispettivamente al primo match su tutto il progetto o su ogni singolo file, molto utile per cercare velocemente se un certo dato è presente su un progetto.

  • configurazione

non c’è bisogno di particolare configurazione ma se si è soliti usare certe opzioni è preferibile creare il file .ackrc e mettere dentro le opzioni preferite. Le mie sono:

–ignore-dir=target (1)
–color (2)
–color-lineno=bright_black (2)
–color-filename=bright_blue (2)
–color-match=bright_red (2)
–sort-files (3)
–smart-case (4)
–follow (5)
–group (6)
–pager=LESS=FSRX less -r (7)

E servono per:

  1. non cercare nelle sottocartelle che si chiamano target
  2. usare certi colori per nomi file, match e testo
  3. ordinare l’output di ack alfabeticamente
  4. usare lo smart case nella ricerca ovvero se ricerco un testo senza maiuscole ack fa una ricerca case insensitive altrimenti ricerca la stringa così com’è
  5. segue i link simbolici
  6. raggruppa per file i match
  7. usa less come pager se l’output è più grande di una pagina

											
Questa voce è stata pubblicata in Uncategorized. Contrassegna il permalink.