2016-07-28 54 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

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

相關問題