簡體   English   中英

如何在多個文件上使用 xmlstarlet 並附加輸出?

[英]How to xmlstarlet on multiple files and append the output?

我正在使用 CSH 殼牌。

我當前工作的 xmlstarlet 命令(對單個文件執行 xmlstarlet 操作並將結果粘貼到輸出文本文件中):

xmlstarlet sel -t -m '//RESULT_STEP' -v '@time_stamp' -o '|' -v '@step_name' --nl Report1.xml > /scratch/rys/view_storage/out.txt

現在我需要在多個文件 Report1.xml 和 Report2.xml 上執行此操作,並將附加的結果存儲在如上的輸出文件中。

是否可以用 xmlstarlet 做到這一點?

您將使用Shell來執行此操作。 bash的示例:

{
  for xmlfile in Report1.xml Report2.xml
  do
    xmlstarlet sel ... "$xmlfile"
  done
} > .../out.txt

只需在兩個文件上運行命令:

xmlstarlet sel -t -m '//RESULT_STEP' -v '@time_stamp' -o '|' -v '@step_name' --nl Report1.xml Report2.xml > /scratch/rys/view_storage/out.txt

簡單的例子:

echo "<a p='1'/>" > a.xml
echo "<b p='2'/>" > b.xml
xmlstarlet sel -t -m '/' -c '/' a.xml b.xml

結果: <ap="1"/><bp="2"/>

xmlstarlet sel -t -m 'node()' -v '@p' a.xml b.xml

結果: 12

暫無
暫無

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

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