Por que não posso canalizar para ack?

1

Então, eu tenho tentado usar grep para extrair algumas coisas de um log do Mercurial e tentar evitar o uso de awk apenas para ver se consigo passar sem ele aqui, e falhando porque nem grep nem egrep suporta regex moderno completo.

Então, isso acontece com o grep:

$   hg log <filename> | grep changeset
changeset:   3651:d23495ab1168
changeset:   2974:6aa71cb2c575
changeset:   2756:9dd7fb635678
changeset:   2532:d3ced9af4d6c
changeset:   2459:9d5f5553b851
changeset:   1835:4558836beed1
changeset:   1628:517d0239e830
changeset:   1486:114bce51254d
changeset:   1378:2b968e7fbd19
changeset:   1374:4e7772e48d00

Isso é o que eu quero em termos de resultados de saída. Mas, para obter melhor suporte de regex, tentei fazer isso com ack , aaae .... nada. o que estou perdendo? Verifiquei vários exemplos e não vejo diferença no que estou fazendo aqui.

$  hg log <filename> | ack changeset
$ 

Não há saída.

Talvez eu esteja entendendo mal essa ferramenta? egrep também não teve suporte suficiente. Eu só quero usar \s : (

    
por Aerovistae 17.04.2015 / 00:25

3 respostas

0

Vi isso na página de documentação do ack, talvez ajudasse?

 --[no]filter                  Force ack to treat standard input as a pipe
                            (--filter) or tty (--nofilter)
    
por 17.04.2015 / 00:37
0

tente entrar

awk '/changeset/ {print}'
    
por 17.04.2015 / 00:40
-1

ack é um pacote padrão instalado em distribuições baseadas em Debian. Se você vir uma mensagem como esta quando executar ack -h , será necessário usar ack-grep ou seguir a etapa no link em < strong> Renomeando o ack-grep em distros derivadas do Debian

Teste hg log <filename> | ack-grep changeset para ver se o ack-grep está instalado corretamente.

    
por 12.07.2016 / 21:00

Tags