パターンマッチングのための変数を使用したBash中括弧の拡張

パターンマッチングのための変数を使用したBash中括弧の拡張

フォームパターンに一致するすべてのファイルを繰り返したいです。

for file in {prefix1, prefix2, ...}*{postfix1, postfix2, ...}; do

{prefix1, prefix2, ...}プログラムでこれらの名前を含むリストに置き換えるにはどうすればよいですか?試してみましたが、変数拡張の前に中かっこ拡張が$prefix*$postfix行わprefix={prefix1,prefix2,...}れているため動作しません。

ベストアンサー1

プレフィックス/サフィックスパターンにスペースがない場合は、拡張ワイルドカードを使用できます。

shopt -s extglob
prefix='@(prefix1|prefix2|prefix3)'
suffix='@(suffix1|suffix2|suffix3)'

echo $prefix*$suffix

for file in $prefix*$suffix; do
    #...
done
  • IFS変数が適切に設定されている場合は、スペースを処理できます。

おすすめ記事