我怎么能在XML中使用bash

问题描述:

更改值我怎么能使用bash我怎么能在XML中使用bash

<resources> <string name="app_name">Keep Accounts</string> <string name="login">"login"</string> <string name="login_password">"password:"</string> <string name="login_account_hint">input to login</string> <string name="login_password_hint">input your password</string> <string name="login_fail">login failed</string> </resources>

例如,在XML改变的价值我想改变值“记账”到“记账2” .The“APP_NAME”可能不仅是“记账”,还包括其他值,比方说XXX,但“APP_NAME”是肯定的,我想要的输出是:

<resources> <string name="app_name">XXX 2</string> <string name="login">"login"</string> <string name="login_password">"password:"</string> <string name="login_account_hint">input to login</string> <string name="login_password_hint">input your password</string> <string name="login_fail">login failed</string> </resources>

+1

可能的复制(http://*.com/questions/13369933/replace-dynamic-content-in-xml-file) –

+0

我怀疑你需要向我们展示更多的上下文;目前你的问题可以通过'sed'/ Keep Accounts /&2 /'file.xml'来解决,但它是这个工作的错误工具,可能不适用于你的真实数据。 –

+0

这些项目可能很多,所以应该通过“app_name”进行选择,然后更改该值。 –

使用XML感知工具。我会做它xsh

open file.xml ; 
insert text " 2" into /resources/string ; 
save :b ; 
+0

看起来像一个不错的工具! –

sed -i 's/<string name=\"app_name\">.*<\/string>/<string name=\"app_name\">NewName<\/string>/g' xml_filename.xml 

单线的sed(bash)的解决方案来替换任何 'APP_NAME'

用sed -i更换有问题的

文件的内容

我以为你有一个文件名为xml_filename.xml XML内容,但改变这种为[替换XML文件动态内容]需要

+0

-i.bu是好的。但我想要基于旧名称的新名称。例如,旧名称是“Hello”,新名称应该是“Hello(new)” –