我成功使用xmlstarlet来替换XML节点中的值。
xmlstarlet ed -u //author[text()='Gambardella, Matthew'] -v 'Gambardella' bookstore.xml
<catalog>
<book id="bk101">
<author>Gambardella, Matthew</author>
<title>XML Developer's Guide</title>
<genre>Computer</genre>
<price>44.95</price>
<publish_date>2000-10-01</publish_date>
<description>An in-depth look at creating applications
with XML.</description>
</book>
我没有找到办法,在批处理模式下执行此操作,说我想替换fileA.txt
中找到的许多作者值:
valueoriginal1
valueoriginal2
valueoriginal3
...
的值为fileB.txt
:
valuereplacement1
valuereplacement2
valuereplacement3
...
并且还有另一个文件,一个日志文件,更改了多少次更改,未更改的内容,以及每次更换的特定书籍ID ...也许我应该使用其他工具,如sed或awk for this?