如何在unix中查找和替换

时间:2014-05-02 08:52:08

标签: regex linux unix

我有一个标记为<![CDATA[]]>&amp;的XML文件。我需要用

替换这个标签
 <![CDATA[XXX]]>

当我试图替换使用时 sed命令:sed 's/<![CDATA[]]>/<![CDATA[XXX]]>/g' stores.xml

我无法看到我的文件发生任何变化。

请帮我找到解决方案。

1 个答案:

答案 0 :(得分:2)

试试这个:

sed -i 's/<!\[CDATA\[\]\]>/<!\[CDATA\[XXX\]\]>/g' stores.xml

你需要转义括号,否则它们在regexp语法中表示“任何包含的字符”。

要查看应用于现有文件的更改,请使用选项-i。或者你可以使用

sed ... < stores.xml > new_stores.xml

至少,对于测试来说,可能更符合您的口味,因为它会创建一个带有结果的新文件并保持原始状态不变。 (之后使用mv new_stores.xml stores.xml以防结果看起来很好。)