if else ステートメントがあるがループを持つ Bash スクリプト変数

if else ステートメントがあるがループを持つ Bash スクリプト変数

私はbashスクリプトの経験があまりありません。ただし、ディレクトリ内の対応するxsdファイルを使用して個々のxmlファイルを検証しようとしています。開始名は同じままですが、日付が変更されます。

たとえば、

  • ファイル1.xsd
  • ファイル2.xsd
  • ファイル3.xsd

  • File1_random_date.xml
  • ファイル2_random_date.xml
  • ファイル2_random_date.xml
  • ファイル3_random_date.xml


File2.xsdに対してすべてのFile2 * .xmlファイルを検証し、File1.xsdなどに対してすべてのFile1 * .xmlを検証したいと思います。


それは次のとおりです。

xmllint --noout --schema File2.xsd File2_*.xml
xmllint --noout --schema File1.xsd File1_*.xml

しかし、正規表現文字列を使用して日付を表示し、File2_*.xmlが存在することを確認し、File2.xsdの各ファイルを検証する方法がわかりません。

助けが必要ですか?

ベストアンサー1

そしてzsh

list=(file*_*.xml)
for prefix (${(u)list%%_*})
  xmllint --noout --schema $prefix.xsd ${prefix}_*.xml

おすすめ記事