2016-07-28 28 views
0

我正在使用C Shell。如何在不同路径中的多个文件的xmlstarlet?

我的工作目录:

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来做到这一点吗?请建议。谢谢。

回答

0

只删除在文件路径的开始斜线解决错误:

这工作:

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 
+0

我希望你明白斜线的意思,至少。 –

相关问题