一般颜色列表

时间:2018-10-19 15:05:09

标签: linux parsing colors xterm

我认为这可能很容易,但不是很多

在我的情况下,我想基于定界符为命令的输出着色

apt-show-versions -u

,并希望根据冒号分隔符或单词“ to”为包装的名称着色。似乎要解析器而不是过滤器。

在Linux和PuTTY上使用color xterm

1 个答案:

答案 0 :(得分:1)

Others have对类似功能感兴趣,建议您检查此处提到的工具(grc / grcat)。

但是,您也许可以摆脱sed-magic的困扰。我不确定要精确着色的颜色,也不知道apt-show-versions的输出是什么样,但这会为冒号和单词“ to”之前的所有内容着色:

cat << EOF | sed -e "s/^[^:]*/\x1b[31m&\x1b[0m/g" | sed -e "s/to/\x1b[31m&\x1b[0m/g"
foo: 1 to 2
bar: 3 to 4
quux: 5 to 6
EOF

您可以将其粘贴到终端中,然后查看它是否在寻找。本质上,它搜索正则表达式的出现并用ANSI颜色代码将其包围:

  • s/X/Y&Y/g:在整个输入(g标志)中或者在引用man sed的情况下,用Y包围X,或者用引号s/regexp/replacement/ Attempt to match regexp against the pattern space. If success‐ ful, replace that portion matched with replacement. The replacement may contain the special character & to refer to that portion of the pattern space which matched, and the special escapes \1 through \9 to refer to the corresponding matching sub-expressions in the regexp.

    ^[^:]*
  • ::从行首开始,匹配所有内容,直到遇到\x1b

  • [31m:十六进制27,一个转义序列(see here for more!
  • [0m:红色的ANSI颜色代码
  • sed:“重置为正常输出”的ANSI颜色代码

如果有什么话,这篇帖子告诉我&捕获了tcp *:http中的匹配项;-)希望您也能获得一些见识!