報告目的ですべての空のXMLファイル名を識別し、それをテキストファイルに書き込む必要があります。ここで空であることは、xmlファイルに一般的なヘッダータグがあり、<?xml version="1.0" encoding="UTF-8"?>
その後に空のオープンタグとクローズタグがあることを意味します。
サンプルファイル:1)
<?xml version="1.0" encoding="UTF-8"?>
<STBTests>
</STBTests>
2)
<?xml version="1.0" encoding="UTF-8"?>
<UMTTests>
</UMTTests>
それ以外は、xmlファイルにデータがありません。この問題を解決する方法に関する提案があれば良いでしょう。
答え1
答え2
空のxmlファイル名をすべて識別し、報告目的でテキストファイルに書き込みます。
find
+xmlstarlet
解決策:
find . -type f -name "*.xml" -exec bash -c \
'v=$(xmlstarlet sel -t -i "count(//*)=1 and //*[1][not(normalize-space())]" -o 1 -b $1);
[[ -n "$v" ]] && echo "$1" >> "empty_xml.txt"' _ {} \;
empty_xml.txt
ファイルには、必要なファイル名/ファイルパスのリストを含める必要があります。