我看过很多或多或少相关的主题,但我找到的所有主题都讨论如何为awk
输出着色。我需要保留作为输入提供的颜色awk
。例如,现在我有:
./some_command
(red_text) (blue_text) (green_text)
./some_command | awk -F' ' '{print $1}'
(red_text) # < but the color is standard terminal color, not red anymore
如何保留awk
输出中的原始色彩?
答案1
some_command 可能有一个选项,即使连接到终端也可以强制使用颜色,例如使用 grep 时就会这样
--color=always
。如果没有,那么你必须欺骗 some_command 让它认为它连接到了终端。script
例如使用:
script --return --quiet -c 'echo a b | grep --color a' /dev/null | awk '{print $1}'
如果你运行 grep 时不带以下内容,则不会有颜色script
:
echo a b | grep --color a | awk '{print $1}'