sed找不到像tag这样的特殊字符串

时间:2014-12-26 13:10:52

标签: xml sed tags

我花了几个小时搜索如何在铁路tomcat server.xml文件中包含唯一字符串标记</Engine>的特定行上方插入文本。

我试图逃避

sed -nr '/\<\/Engine\>/p' /opt/railo/tomcat/conf/server.xml

查找此字符串的行号,但我总是收到错误消息。

我的目标是在结束</Engine>代码上方创建新用户时自动插入新的主机名信息,因为这样可以更轻松地进行维护。

我对文本/字符串操作不太好,我真的很感激这方面的帮助。

谢谢。

2 个答案:

答案 0 :(得分:1)

我找到了自己问题的答案。

sed -n '/<\/Engine>/ ='为我提供了正确的行号。所以我现在可以在我的脚本中使用这种模式。

答案 1 :(得分:0)

以下此命令仅匹配所有与</Engine>的行匹配,并在其上方放置一行文字

sed '\#^</Engine>$#i\<put_your_text_here>'

<put_your_text_here>是您将放在此行

之上的文字

另请注意我使用了#34;#&#34;作为sed的分隔符,因为你的字符串有/以避免冲突

修改

如果标签在或没有空格之前和之后都有空格,您可以尝试

sed '\#^[ ]*</Engine>[ ]*$#i\<put_your_text_here>'