リスト内の特定のファイルセットを繰り返します。

リスト内の特定のファイルセットを繰り返します。

次の順序で多数のファイルを含むフォルダがあります。

A1.txt A2.txt A3.txt A4.txt

私のループはすべての項目を繰り返すのではなく、リスト内の項目だけを繰り返すことを望みます。

list=("A1" "A3")

for fn in path/${list[@]};
do
  echo "$fn"
done

これを行うと、代わりに次のようになります。

path/A1
path/A2

私は得る:

A1
A1

以前はフルパスはありませんでした。誰でも助けることができますか?

最高、

オーディオとビデオ

ベストアンサー1

@steeldriverが言ったように、path/A1sumを取得する必要がありますA3。なぜこの結果が出るのかよくわかりません。代わりに、次のように配列の各要素にプレフィックスを追加できます
path/${list[@]};

${list[@]/#/path/}

したがって、あなたのforは次のようになります。

for fn in "${list[@]/#/path/}";
do
  echo "$fn"
done

おすすめ記事