Bash 脚本 - sed 命令用于颜色

Bash 脚本 - sed 命令用于颜色

我有一个日志文件,我想在显示输出时突出显示一些关键词。

我喜欢这个词,我的账户我的文件.txt变成不同的颜色,这样它就会脱颖而出。这是我所拥有的

blue='\e[0;34m'
end='\033[0m'

user="myaccount"
less someapp.log | sed "s/\${blue}/$user/${end}/" | grep --color=auto myfile.xml

这应该是我的输出:
Jan:01:2023 03:35:26:491 /blah1/blah2/我的账户/废话3/我的文件.txt

但这是我收到的错误信息,

sed: -e expression #1, char 25: unterminated `s' command

我该如何将字符串中的两个字符设置为不同的颜色?

答案1

我在这里找到了答案:
https://www.unix.com/unix-for-dummies-questions-and-answers/134824-using-sed-change-specific-words-color.html

以下是他们所拥有的:

cat $file | sed ''/$word/s//`printf "\033[32m$word\033[0m"`/''

因此我根据我的命令对其进行了定制,这是最终的结果:

less someapp.log | sed ''/$user/s//`printf "${blue}$user${end}"`/'' | grep --color=auto myfile.xml

现在,这两个单词将以不同的颜色显示。

相关内容