grep이 올바르게 색칠되지 않습니다

grep이 올바르게 색칠되지 않습니다

명령의 출력을 grep으로 파이프하려고 합니다.

$ strace a.out | grep --color=always "mmap"

그러나 strace의 색상이 지정되지 않은 출력만 출력합니다.

...
mmap(NULL, 503808, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fa42389d000
write(1, "got memory: (address=0x7fa42389d"..., 37got memory: (address=0x7fa42389d010)
) = 37
mmap(NULL, 503808, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fa423822000
write(1, "got memory: (address=0x7fa423822"..., 37got memory: (address=0x7fa423822010)
) = 37
mmap(NULL, 503808, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fa4237a7000
write(1, "got memory: (address=0x7fa4237a7"..., 37got memory: (address=0x7fa4237a7010)
) = 37
mmap(NULL, 503808, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fa42372c000
write(1, "got memory: (address=0x7fa42372c"..., 37got memory: (address=0x7fa42372c010)
) = 37

여기는 색칠되어 있지 않지만 그래야 합니다. 달성하는 방법?

답변1

strace출력은 표준 오류 스트림에 있으므로 다음을 사용하십시오 .

strace a.out 2>&1 | grep --color=always -- 'mmap';

또는 bash사용 중인 경우

strace a.out |& grep --color=always -- 'mmap';

사용 가능한 모든 출력을 원하는 경우:

strace a.out |& grep --color=always -E -- 'mmap|';

당신은 또한 볼 수 있습니다파이프 STDERR 및 STDOUT자세한 내용은.

관련 정보