我有一个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命令中转义这些特殊字符。
答案 0 :(得分:0)
!
也需要转义。在sed
命令范围内,!
反转了限制,通常与p
或d
配对。因此,以下命令应添加该行
<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行插入。