【发布时间】:2010-11-07 01:16:43
【问题描述】:
我正在尝试使用一行文字
13) Check for orphaned Path entries
并将其更改为(我希望 bash 颜色代码为输出着色,而不是显示在屏幕上)
\033[32m*\033[0m Check for orphaned Path entries
使用 bash 颜色代码为星号着色以使其更加突出。我有一个 sed 命令可以完成大部分工作,但它不能正确处理颜色代码,因为它将它们视为对替换文本的引用。
到目前为止我所拥有的:
sed "s/ *13) \(.*\)/ \033[32m*\033[0m \1/"
在我在开头给出的字符串上运行时会产生以下输出:
13) Check for orphaned Path entries33[32m* 13) Check for orphaned Path entries33[0m Check for orphaned Path entries
它采用 \033 的 \0 并将其替换为原始字符串。将替换字符串中的反斜杠加倍没有区别;我仍然得到相同的输出文本。
如何在 sed 替换表达式中插入 bash 颜色转义?
【问题讨论】:
-
如@DreadPirateShawn 所建议的,将反斜杠加四倍会产生与使用单引号和双倍斜杠相同的效果。我得到 \033[32m*\033[0m 直接输出到控制台,而不是变成颜色代码。
-
基本上是一样的。这就是为什么我已经删除了我的评论。