2011-04-07 52 views
6

是否可以使用sed來更改制表符(或任何其他文本)的背景色,例如,我可以運行如下所示的內容?使用sed將標籤添加到背景顏色?

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

是的,這是可能的。我希望有人過來並給你答案,因爲我現在不在計算機上,因此我不記得我是如何做到的。但是,與終端控制代碼有關。 – drysdam 2011-04-07 02:07:16

回答

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

3

+1 for olibre。

這也適用於osx和linux,bash和zsh使用extquote

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

+1也適合你;-)在這種情況下使用extquote是一個非常好的主意:你不必記住具體的'sed'來處理特殊字符。我會重複使用您的提示;-)乾杯 – olibre 2013-07-22 15:25:27