如何逃避'<'和'>' sed中的人物。

我有一些xml文件需要在要替换的标记之间添加一些文本。如何逃避'>'和'<'字符。

>的问题和<是否在shell中将输出重定向到文件具有特殊含义。所以反斜杠不起作用。

有帮助吗?

解决方案

确定。由我自己找到。使用引号。

$ sed -i "s/>foo</>bar</g" file

其他提示

只需在它们前面放一个反斜杠或用单引号或双引号括起来。再想一想,我认为你的问题需要更清楚。您是否尝试使用sed处理XML文件,并且想要获取标记之间的内容?那你想要:

sed -re 's@(<TAG.*?>).*?(</TAG>)@\1hi\2@' test.xml

使用反斜杠转义它们

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top