是否可以使用sed来更改选项卡(或任何其他文本)的背景颜色,例如,我可以运行类似下面的内容?
somefunction | sed -e 's/(some pattern)/(set bg color)\1(unset bg color)/g'
答案 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(非常底部)
答案 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/'