【发布时间】:2017-10-22 00:38:16
【问题描述】:
这是我下面的xml
<Deployer exitOnError="true" sourceType="Repository">
<Projects projectPrefix="">
<SubProject description="" name="Ship" overwrite="false" type="Repository">
</SubProject>
</Projects>
</Deployer>
我想使用 shell 脚本将 name="Ship" 更改为 name="Ship"+currentdatetime。任何帮助表示赞赏。
我想最好使用 sed 或 awk(我不想要 xmlstarlet,因为我的 linux 机器上不能有 xml 工具箱)
请在下面找到,我试过了。
sed "/DeployerSpec>/,<Project description='' name='bstar' overwrite='false' type='Repository'>" file
sed -i 's:<DeployerSpec exitOnError="true" sourceType="Repository"><Projects projectPrefix=""><Project description="" name="bstar" overwrite="false" type="Repository"></Project></Projects></DeployerSpec>:<DeployerSpec exitOnError="true" sourceType="Repository"><Projects projectPrefix=""><Project description="" name="bstar"+$(date+%x_%r) overwrite="false" type="Repository"></Project></Projects></DeployerSpec>:' sample.xml
sed -i.bak "s/<Project description='' name='bstar' overwrite='false' type='Repository'>/<Project description='' name='bstar'+$(date +%x_%r) overwrite='false' type='Repository'>/g" a.xml
【问题讨论】:
-
我的 linux 上不能有 xml 工具箱 - 但您可以轻松安装它们,因为它们是用于 xml 数据操作的合适工具
-
我的客户不同意,我的经理坚持只用 shell 脚本来解决这个问题!
-
my manager insists on fixing this with shell scripting alone然后写一个问你有没有卡住... -
edit 你的问题包括预期的输出给定您发布的示例输入以及您迄今为止尝试过的内容。
-
包括了我尝试过的脚本。