如何在 awk 中保存输入颜色?

如何在 awk 中保存输入颜色?

我看过很多或多或少相关的主题,但我找到的所有主题都讨论如何为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}'

相关内容