Results tagged “unix” from The Cattle Grid

Molti moduli Perl sono, almeno da me, dati per scontati, nel senso che si utilizzano così di frequente che ormai sono come parte del linguaggio stesso. In realtà si tratta di interessanti progetti per semplificare le attività di ogni giorno, per i quali è opportuno scrivere qualche riga non solamente "celebrativa", ma utile a chi non li conoscesse.

Uno di questi moduli è Path::Class, di Ken Williams, utilizzato per la gestione dei file utilizzati da un'applicazione. Esso offre alcuni vantaggi rispetto alle funzioni core di Perl:

  • Un'unica API object-oriented per gestire file e directory
  • Path multipiattaforma - non serve più preoccuparsi del fatto che in Unix venga utilizzato lo slash (/) e sotto Windows il backslash (\) (grazie a File::Spec)
  • Metodi che semplificano lettura/scrittura di file
  • Metodi che semplificano l'attraversamento di un albero di directory
  • Vari altri metodi utili (ad esempio per capire se una directory si trova dentro un'altra)

ack: un grep (molto) migliorato

|

È 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.

Tags

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

Categories

Pages

Powered by Movable Type 4.23-en