使用sed为标签添加背景颜色?

时间:2011-04-07 01:58:41

标签: linux unix sed

是否可以使用sed来更改选项卡(或任何其他文本)的背景颜色,例如,我可以运行类似下面的内容?

somefunction | sed -e 's/(some pattern)/(set bg color)\1(unset bg color)/g'

3 个答案:

答案 0 :(得分:6)

是:

#!/bin/bash

norm_bg=$(tput sgr0)
red_bg=$(tput setab 1)

echo -e "foo\tbar\tbaz" | sed "s/\t/$red_bg    $norm_bg/g"

请参阅此链接了解其他Color Codes(非常底部)

terminal

答案 1 :(得分:4)

您可以直接在sed脚本中插入颜色:

echo -e "foo\tbar\tbaz" | sed 's/\t/\o033[41m    \o033[0m/g'

<强>解释

  • 将背景设置为红色= \o033[41m\x1B[41m\c[[41m
  • 重置颜色= \o033[0m\x1B[0m\c[[0m

你也可以阅读类似的问题/ anwsers:
Escaping the '\' character in the replacement string in a sed expression

有关颜色代码的详细信息,请参阅Arch wiki

答案 2 :(得分:3)

+1 olibre。

这也适用于使用extquote的osx和linux,bash和zsh。

echo My name is Chad. | sed -e 's/Chad/\'$'\033[31m&\033[(B\033[m/'