簡體   English   中英

如何在不同路徑下的多個文件上使用xmlstarlet?

[英]How to xmlstarlet on multiple files in different paths?

我正在使用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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM