我正在尝试编写一个 bash 脚本以从诸如此类的 xml 文件中提取多个“导演”,并将它们用管道分隔,即 Tom Tykwer|Andy Wachowski。
相关的xml部分是:
<directors>
<item>Tom Tykwer</item>
<item>Andy Wachowski</item>
</directors>
在 bash 脚本中使用 xmlstarlet 执行以下命令:
DIRECTORS=$(xmlstarlet sel -t -v "imdbdocument/directors/item" mymoviexml)
echo $DIRECTORS
给我吗
Tom Tykwer Andy Wachowski
这个命令直接在终端
xmlstarlet sel -t -v "imdbdocument/directors/item" mymovieapi.xml
给我:
(empty line)
Tom Tykwer
Andy Wachowski
当我没有指定 -n 选项时,我不知道为什么要添加新行。
我的一些搜索建议是这样的:
xmlstarlet sel -t -m "imdbdocument/directors" -v "item" -o "|" mymovieapi.xml
但这只是给了我:
Tom Tykwer
Andy Wachowski|
我会很感激我能得到的任何帮助。我在 Debian Wheezy 上使用 xmlstarlet 1.3.1 和在 Xubuntu 13.10 上使用 xmlstarlet 1.5.0 看到了这种行为。