从shell脚本添加文件中的文本(文件包含标签)

时间:2014-11-21 23:17:36

标签: bash shell

我有来自tomcat-users.xml的以下代码

<tomcat-users>
    <!--
      NOTE:  By default, no user is included in the "manager-gui" role required
      to operate the "/manager/html" web application.  If you wish to use this app,
      you must define such a user - the username and password are arbitrary.
    -->
    <!--
      NOTE:  The sample user and role entries below are wrapped in a comment
      and thus are ignored when reading this file. Do not forget to remove
      <!.. ..> that surrounds them.
    -->
    <!--
      <role rolename="tomcat"/>
      <role rolename="role1"/>
      <user username="tomcat" password="tomcat" roles="tomcat"/>
      <user username="both" password="tomcat" roles="tomcat,role1"/>
      <user username="role1" password="tomcat" roles="role1"/>
    -->
</tomcat-users>

我想从shell脚本中添加以下新角色和新用户。

<role rolename="manager-gui"/>
<user username="t" password="t" roles="manager-gui”/>

如何在shell脚本中执行此操作?

1 个答案:

答案 0 :(得分:1)

如果您尝试使用正则表达式处理xml / html文件,则应该知道风险。

以下是使用gnu sed的简单快捷方法:

sed -ir '/<tomcat-users>/s#.*#&\n<role rolename=".../>\n<user....#' tomcat-users.xml