gpt4 book ai didi

xml - 如何在不同路径的多个文件上使用 xmlstarlet?

转载 作者:太空宇宙 更新时间:2023-11-04 12:46:14 31 4
gpt4 key购买 nike

我正在使用 C Shell。

我的工作目录:

cd /mnt/FusionOATS/CRM/Research/rys/

我当前工作的 xmlstarlet 命令(对直接位于工作目录下的 2 个文件执行 xmlstarlet 操作,结果粘贴在输出文本文件中):

foreach xmlfile ( ResultReport1.xml ResultReport2.xml )
xmlstarlet sel -t -m '//RESULT_STEP' -v '@time_stamp' -o '|' -v '@step_name' --nl "$xmlfile" >> /scratch/rys/view_storage/outroo3.txt
end

现在我需要对位于不同路径的文件执行此操作,如下所示:

  • 工作目录/ResultReport1.xml

  • 工作目录/ResultReport.xml

  • 工作目录/Test3/ResultReport3.xml

我试过这个:

foreach xmlfile ( ResultReport1.xml ResultReport2.xml /Test3/ResultReport3.xml )
xmlstarlet sel -t -m '//RESULT_STEP' -v '@time_stamp' -o '|' -v '@step_name' --nl "$xmlfile" >> /scratch/rys/view_storage/outroo4.txt
end

但是,出现以下错误:

无法加载外部实体“/Test3/ResultReport2.xml”

我可以用 xmlstarlet 做到这一点吗?请建议。谢谢。

最佳答案

只需删除文件路径开头的斜杠即可解决错误:

这有效:

foreach xmlfile ( ResultReport1.xml ResultReport2.xml Test3/ResultReport2.xml )
xmlstarlet sel -t -m '//RESULT_STEP' -v '@time_stamp' -o '|' -v '@step_name' --nl "$xmlfile" >> /scratch/rys/view_storage/outroo4.txt
end

关于xml - 如何在不同路径的多个文件上使用 xmlstarlet?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38641310/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com