ack, une alternative à grep pour codeurs

Découvert complètement par hasard, ack est un petit outil bien pratique dans la ligné de grep, pensé pour être rapide à l’usage, et surtout pour programmeurs. Comme je suppose qu’un « grep pour programmeur » peut laisser perplexe plus d’un, regardons de plus près ce qu’il apporte de plus.

  • Récursif par défaut, ack va chercher de façon récursive le pattern recherché, et c’est souvent le comportement rechercher lorsqu’on à besoin de trouver une fonction dans un projet qu’on ne connais pas du tout.
  • Ignore les répertoires de gestionnaire de version par défaut, tel que git, svn…
  • Ignore les fichiers temporaires en tout genre, tel que file.txt~, .file.txt.swp, #file.txt#.
  • Possibilités de spécifier en argument le type (langage) de fichier à inclure, ou au contraire à exclure, par un simple –perl, –nohtml, la liste est longue et intuitive.
  • Rapidité et simplicité de sa syntaxe
  • Performant sur de large arborescence avec des fichiers hétérogènes.
  • Une sortie colorée est bien agencé, ce qui est toujours agréable un peu de repère dans une sortie de commande, avec highlight du mot recherché.
  • Écrit en perl, et profite donc des expressions régulières réputées de ce langage.
  • Un nom de domaine cool : betterthangrep.com

Un exemple prit sur leur site montrant la non-verbeusité de leur outil comparativement à grep, pour un usage de programmeur:

$ grep pattern $(find . -name '*.pl' -or -name '*.pm' -or -name '*.pod' | grep -v .svn)
$ ack --perl pattern

Le tout est disponible dans [community] pour Arch Linux:

community/ack 1.94-2
    A Perl-based grep replacement, aimed at programmers with large trees of
    heterogeneous source code
pacman -S ack
apt-get install ack-grep

Toutes les informations sont disponible sur leur site. En tout cas, ack correspond à mes besoins, car ce n’est pas un outil que je vais me servir pour un script par exemple, mais plus comme un outil de recherche rapide dans des fichiers sources, et le pattern que j’utilise est très souvent des plus simples, sans être réelement une expression régulière. Ack correspond bien à un besoin de recherche simplifiée, rapide et concise.

Vus : 1051
Publié par Nicolas Paris : 149