sed:命令为solaris乱码

时间:2014-07-30 09:16:47

标签: sed solaris

我正在尝试附加行

<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,导致命令乱码错误

1 个答案:

答案 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