왜 파이프를 통해 확인할 수 없나요?

왜 파이프를 통해 확인할 수 없나요?

그래서 grepMercurial을 사용하여 로그에서 일부 콘텐츠를 추출하고 그것 awk없이도 할 수 있는지 확인하기 위해 사용하지 않으려고 노력했지만 완전한 최신 정규 표현식이 지원되지 grep도 않기 때문에 실패했습니다.egrep

이는 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

이것이 내가 원하는 출력입니다. 하지만 더 나은 정규식 지원을 위해 ackaaaand....를 사용해 보았지만 아무 작업도 수행되지 않습니다. 내가 무엇을 놓치고 있나요? 여러 가지 예를 확인한 결과 내가 여기서 하고 있는 일이 별 차이가 없다는 것을 알았습니다.

$  hg log <filename> | ack changeset
$ 

출력이 없습니다.

제가 이 도구를 잘못 이해한 것은 아닐까요? egrep또한 충분한 지원을 받지 못합니다. 그냥 사용하고 싶어요 \s:(

답변1

ack 문서 페이지에서 이것을 보았는데 도움이 될까요?

 --[no]filter                  Force ack to treat standard input as a pipe
                            (--filter) or tty (--nofilter)

답변2

들어가려고 노력하다

awk '/changeset/ {print}'

답변3

파티에 너무 늦었지만 ack v3.3.1 파이프라인은 잘 작동합니다.

$ git log | ack 'bar'
$ ack 'regex' log | ack 'bar'

복잡한 정규 표현식을 실행해야 하는데 시간이 촉박해 한 줄로 실행할 수 없기 때문에 이 문제에 부딪혔습니다.

이것이 누군가에게 도움이 되기를 바랍니다

답변4

ackDebian 기반 배포판에 설치되는 기본 패키지입니다. 실행 중에 이와 같은 메시지가 표시되면 아래 단계를 ack -h사용하거나 따라야 합니다 .ack-grephttp://beyondgrep.com/install/존재하다데비안 파생물에서 ack-grep 이름 바꾸기

hg log <filename> | ack-grep changesetack-grep이 올바르게 설치되었는지 확인해보세요 .

관련 정보