I am trying to pipe a output from command to grep.
$ strace a.out | grep --color=always "mmap"
but it only outputs non-colorized output of 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
Here it is not colorized, but should. How to achieve it?
echo 'foo mmap 123' | grep --color=always 'mmap'
give you colored output? If so,strace
output is probably onstderr
and you are seeing entire output instead of just the lines withmmap
– Sundeep Jun 22 '20 at 09:55strace a.out -o >(grep --color=always brk)
, but still no color – milanHrabos Jun 22 '20 at 10:01strace a.out 2>&1 | grep
orstrace a.out |& grep
– Sundeep Jun 22 '20 at 10:05