我正在尝试附加行
<configuration>
<jsp-configuration
display-source-fragment="false"
x-powered-by="false"/>
</configuration>
行后
<connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http" enabled="false"/>
我正在尝试这个命令
sed -i '/<connector name="http" protocol="HTTP\/1.1" scheme="http" socket-binding="http" enabled="false"\/>/a <configuration>\n <jsp-configuration\n display-source-fragment=\"false\"\n x-powered-by=\"false\"/>\n </configuration>' abc.xml >output.xml
这适用于Unix,但不适用于solaris,导致命令乱码错误
答案 0 :(得分:1)
错误可能来自a
命令后的空格。尝试删除它。或者,更好:将您的脚本放在一个文件中并按如下方式编写:
/<connector name="http" protocol="HTTP\/1.1" scheme="http" socket-binding="http" enabled="false"\/>/a\
<configuration>\
<jsp-configuration\
display-source-fragment="false"\
x-powered-by="false"/>\
</configuration>
非常重要的是,脚本中最后一行的字符是反斜杠,除了最后一行。您将此文件命名为sedscr
,然后:
sed -f sedscr abc.xml >output.xml
顺便说一下,为什么在将输出重定向到另一个文件时使用选项-i
?