如何在多个文件上使用 xmlstarlet 并附加输出?
How to xmlstarlet on multiple files and append the output?
我正在使用 CSH Shell。
我当前工作的 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
结果:<a p="1"/><b p="2"/>
和
xmlstarlet sel -t -m 'node()' -v '@p' a.xml b.xml
结果:12
我正在使用 CSH Shell。
我当前工作的 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
结果:<a p="1"/><b p="2"/>
和
xmlstarlet sel -t -m 'node()' -v '@p' a.xml b.xml
结果:12