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)
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
: (
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)
tente entrar
awk '/changeset/ {print}'
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.