2016-07-28 9 views
0

私はCシェルを使用しています。異なるパスの複数のファイルでxmlstarletを実行するにはどうすればよいですか?

私の作業ディレクトリは:

cd /mnt/FusionOATS/CRM/Research/rys/ 

は私の現在の作業は、(作業ディレクトリの直下にある2つのファイルにxmlstarlet操作を行い、その結果を出力テキストファイルに貼り付けられます)コマンドを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

を、私は、少なくとも、あなたはスラッシュが何を意味するか理解してほしいです。 –

関連する問題