我想编辑一个程序,它是一个XML的配置文件:bash脚本编辑XML文件
<software>
<settings>
...
<setting name="local directory" type="string">/home/username/</setting>
...
</settings>
</software>
什么是从一个bash脚本做到这一点,最简单的方法?
感谢
我想编辑一个程序,它是一个XML的配置文件:bash脚本编辑XML文件
<software>
<settings>
...
<setting name="local directory" type="string">/home/username/</setting>
...
</settings>
</software>
什么是从一个bash脚本做到这一点,最简单的方法?
感谢
根据你想要做什么,你可能想要使用一些特定于XML的工具(处理字符编码,保持XML格式良好等)。您可以使用普通的面向行的工具,但除非您小心(或做一些小事),否则您可以轻松创建不兼容的XML。
我使用XMLStarlet命令行集。这是一套专门用于解析/操作XML的命令行工具。
+1对我来说很漂亮。 – 2009-10-12 13:22:10
+1以上评论使用的单词丹迪。 +1来发布,以供参考。 – 2013-01-30 16:44:57
XMLStarlet ...好的提示! – 2015-08-26 22:54:36
大多数人可能会使用SED从bash脚本做在线编辑。如果你真的关心解析XML,那么你可以使用像Perl这样的支持XML解析器的东西。
这可能是一种解决问题的方法。但在这种情况下,请尝试添加一些示例代码。不要给出模糊的句子。 – 2017-10-04 04:12:18
丑陋/不安全的,但有时最简单的就是叫SED/perl的庆典从
你应该先阅读这个:http://stackoverflow.com/a/1732454/337079 – mogsie 2012-10-16 15:55:00
使用xmlstarlet/AWK:
xmlstarlet val -e file.xml
xmlstarlet ed -u "//settings/setting/@name" -v 'local directory2' file.xml
xmlstarlet ed -u "//settings[1]/setting/@name" -v 'local directory2' file.xml
# edit file inplace
xmlstarlet ed -L -u "//settings/setting/@name" -v 'local directory2' file.xml
我没有-L选项就地编辑,你使用的是什么版本的xmlstartlet和unix? – simpatico 2011-04-08 07:26:48
啊,辉煌 - -L选项正是我所期待的。 – 2012-04-27 07:14:41
你想要什么编辑做什么呢? – Mark 2009-10-12 11:58:10
设置称为本地目录,其值 – 2009-10-12 16:21:57