替换bash中未知的XML值
我有一个XML文件,格式如下:替换bash中未知的XML值,xml,linux,bash,command-line,Xml,Linux,Bash,Command Line,我有一个XML文件,格式如下: <?xml version="1.0" encoding="utf-8"?> <config> <input> <...> <file>1</file> ... </...> <network> <file>2</file> ... </ne
<?xml version="1.0" encoding="utf-8"?>
<config>
<input>
<...>
<file>1</file>
...
</...>
<network>
<file>2</file>
...
</network>
</input>
<output>
<...>...</...>
<file>...</file>
...
</output>
</config>
1.
...
2.
...
...
...
...
我想替换命令行中中的值,但遇到了一些问题
第一个问题是有多个名为“file”的参数,那么如何替换我想要的特定参数第二个问题是,实际上我不知道参数“file”的值,是否有一种方法可以在不知道的情况下替换该值?可以使用xpath和xmlstarlet来实现这一点edit@MévatlavéKraspek那么有没有办法只使用普通的bash命令,而不安装xpath/xmlstarlet?只有xmlstarlet可以安装。xpath只是一种查询语言。或者您可以编写一个python、perl、ruby脚本,“有办法吗?”是一个错误的问题。有一种方法可以一次编写一个应用程序,但您不应该这样做。在这里,您不应该像@MévatlavéKraspek所建议的那样,在没有XML解析器或XPath之类的XML工具的情况下解析XML:查看可以从bash调用的许多脚本语言中的xmlstarlet或XML处理工具(而不是regex)。