如何使用sed命令将带有xml标记的一行添加到一个文件

时间:2019-06-04 06:43:21

标签: xml shell sed

我有一个String XML字符串要添加到第2行之前的一个文件中。

<script><![CDATA[context.ExtendParams.setParam('Enable500', 1);]]></script>

我尝试命令

 sed "2 <script><![CDATA[context.ExtendParams.setParam(\'Enable500\', 1);]]></script>" -i mytest.log

获取错误:

-bash: ![CDATA[context.ExtendParams.setParam: event not found

我知道我应该转义特殊字符,但是我不知道如何在Sed命令中转义这些特殊字符。

2 个答案:

答案 0 :(得分:0)

!也需要转义。在sed命令范围内,!反转了限制,通常与pd配对。因此,以下命令应添加该行

<script><![CDATA[context.ExtendParams.setParam('Enable500', 1);]]></script>

文件第二行之前:

sed -e "2i<script><\![CDATA[context.ExtendParams.setParam(\'Enable500\', 1);]]></script>" -i mytest.log

答案 1 :(得分:0)

双引号中的!是用于history expansion的特殊字符。

使用单引号字符串代替:

sed -i '2i<script><![CDATA[context.ExtendParams.setParam('"'"'Enable500'"'"', 1);]]></script>' file

注意:2i意味着我们需要在第2行插入。