file1.txt、file2.txt、およびfile3.txtという3つのファイルがあるディレクトリがあるとします。
では、これらのファイル名で配列をどのように入力できますか? (すべてのファイルには特定のプレフィックス、つまりファイルがあり、ファイルの後に1、2、3などにすることができます)。
答え1
GregのWikiから:Bashガイド配列の項目:
files=()
while read -r -d $'\0'; do
files+=("$REPLY")
done < <(find *.txt -print0)
ページには配列の詳細な説明があり、構造要素を要素別に分類して全体を読む価値があります。
答え2
ファイルがすべて同じディレクトリにある場合、jasonwryanの答えに加えて、いくつかの異なるオプションがあります。
グローバル使用:
files=(file[0-9].txt)
質問のサンプルファイルのみが一致します。
files=(file[1-3].txt)
bashバージョン4以降の場合は、再帰的にglobを実行することもできます。
shopt -s globstar
files=(**/file[0-9].txt)
中かっこ拡張を使用して、サンプルファイルのみを含めるように配列を制限します。
files=(file{1..3}.txt)
他の2つの例とは異なり、これはファイル名が存在しなくても配列をファイル名で埋めます。したがって、ステント拡張は理想的ではないかもしれない。