Posso simular ack usando grep com a combinação certa de opções?

2

Eu tenho o ack-grep instalado na minha máquina local, e acho indispensável para rapidamente "chamar" uma base de código ao depurar.

No entanto, na minha hospedagem compartilhada barata, não há ack-grep. Um dos depoimentos em betterthangrep.com menciona um

Rube Goldberg mess of find/grep/xargs

que soa como o que eu preciso, mas vindo da direção oposta.

Alguém sabe o que pode ser?

    
por user908393 25.08.2011 / 12:30

2 respostas

4

O comando real é denominado ack . (Alguns distribuidores podem ter renomeado para ack-grep devido a colisões de nomes.) O site oficial é de fato link , e tem uma longa lista de instalação métodos, mesmo no caso de sua distribuição não ter ack .

Por exemplo, você pode baixar App :: Ack do CPAN do Perl (usando cpanminus ):

cpanm --sudo App::Ack

Ou obtenha a versão "autônoma":

curl http://betterthangrep.com/ack-standalone > ~/bin/ack
chmod +x ~/bin/ack
    
por 25.08.2011 / 12:54
4

Sim, você pode fazer isso manualmente e, na verdade, você deve saber como fazer isso manualmente. Por exemplo, se você estiver fazendo

ack function_name --php

você pode fazer isso (muito bem) como

find . -name '*.php' | xargs grep function_name

É mais longo digitar, e você pode criar um apelido ou script de shell, mas é bom saber como fazê-lo, apenas para saber como fazer isso. / p>

Sua pergunta me faz sorrir porque geralmente o que eu ouço é da velha guarda, Unix greybeards dizendo "Você não precisa de ack , apenas use find , xargs e grep ." É legal ver alguém vindo da outra direção.

    
por 25.08.2011 / 16:55