Color codes will pass through pipes just like any other output.
In this case, your grep is being smarter than you want and actually parsing the incoming color codes itself.
You can try a simpler program like head
, tail
, or even sed -n /ii/p
to see it for yourself.
You can also control GNU grep's color processing with --color
but you may not find exactly what you seek.