如何为自定义程序的控制台输出着色

时间:2017-04-12 11:55:17

标签: terminal pipe output cts

问题:

我使用终结者,但我认为这个问题与任何终端有关。 更确切地说,请让我以具体的例子解释我的问题。 我正在运行Android cts测试,所以我需要使用cts-tradef脚本。这就是它的样子:

enter image description here

脚本只运行jar(我不想修改),但是我想改变cts-tf的颜色,所以看起来如下图所示:

enter image description here

我未能成功解决问题:

现在我尝试过这样的事情:

echo -e "\033[01;32m" && ./cts-tradefed

然而,它会为所有颜色着色(如下图所示),而我只想为cts-tf字符串着色(如上所示):

enter image description here

我也试过使用 sed ,但是虽然它有效并且替换了一些字符串,但它也完成了cts-tradefed,所以它对我没用。通过 grep 进行管道时,会发生同样的事情(cts-tradefed finish):

./cts-tradefed | grep --color "cts-tf\|$"

另一个尝试是 Anthony Geoghegan 提到的 grc 工具。在没有配置文件的情况下运行它并没有做任何事情,但是cts-tradefed没有完成但是当我使用配置文件运行时cts-tradefed完成与 grep 相同的操作SED 。我的配置文件还可以,因为它适用于 cat 或类似的命令。

1 个答案:

答案 0 :(得分:1)

我自己没有用过它,但RadovanGarabík的Generic Colouriser看起来应该做你想做的事。它是用Python编写的“用于美化日志文件或输出命令”。

软件包可用于基于Debian的操作系统,但我认为如果您熟悉Python,安装起来应该不会太难。

GitHub repository