用于替换包含/和"

时间:2018-03-16 20:44:26

标签: bash shell unix sed

我有一个要求,我需要读取XML文件并替换包含/"的标记并将其另存为新文件。

原始代码格式:

<CollateralReportDocument xmlns="http://schemas.foo.com/sII/CollateralReportDocument/1.0">

新文件的标签应为:

<CollateralReportDocument>

我尝试过使用

Sed -i 's/<CollateralReportDocument xmlns="http://schemas.foo.com/sII/CollateralReportDocument/1.0">
/ <CollateralReportDocument>/g' filename.xml 

......但它不起作用。你能帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

您使用/作为分隔符,但您的字符串中也有一些/可以替换。

您应该使用#作为分隔符。

<强> Linux的:

sed -i 's#<CollateralReportDocument xmlns="http://schemas.foo.com/sII/CollateralReportDocument/1.0">#<CollateralReportDocument>#g' filename.xml

<强> MACOS:

sed -i '' 's#<CollateralReportDocument xmlns="http://schemas.foo.com/sII/CollateralReportDocument/1.0">#<CollateralReportDocument>#g' filename.xml