Chr*_*ieb 6 string bash escaping sed
我想尝试一行文字
13) Check for orphaned Path entries
Run Code Online (Sandbox Code Playgroud)
并将其更改为(我希望bash颜色代码为输出着色,而不是在屏幕上显示)
\033[32m*\033[0m Check for orphaned Path entries
Run Code Online (Sandbox Code Playgroud)
使用bash颜色代码对星号进行着色,使其更加突出.我有一个sed命令执行大部分操作,除了它没有正确处理颜色代码,因为它将它们视为对替换文本的引用.
到目前为止我所拥有的:
sed "s/ *13) \(.*\)/ \033[32m*\033[0m \1/"
Run Code Online (Sandbox Code Playgroud)
当我在开头给出的字符串上运行时产生以下输出:
13) Check for orphaned Path entries33[32m* 13) Check for orphaned Path entries33[0m Check for orphaned Path entries
Run Code Online (Sandbox Code Playgroud)
它取\ 0的\ 0并用原始字符串替换它.将替换字符串中的反斜杠加倍并没有什么区别; 我仍然得到相同的输出文本.
如何将bash颜色转义插入到sed替换表达式中?
sed
你使用的机会可能不理解八进制,但它可能理解十六进制.试试这个版本,看它是否适合你(使用\x1b
而不是\033
):
sed "s/ *13) \(.*\)/ \x1b[32m*\x1b[0m \1/"
Run Code Online (Sandbox Code Playgroud)