/mydir
現在、1000のフォームデータファイルを含める必要があるディレクトリがありますFile1.exe, File2.exe, ... , File100.exe
。
現在欠落しているファイルを検索して出力するforループがあります。
for((i=1; i<=1000; i++))
do
name="File.${i}.exe"; [[ ! -e "$name" ]] && echo "$i"
done
欠落しているインデックスをエコーせずに、次のようにカンマ区切りリストに入れる方法があるかどうか疑問に思います。
1,5,20,40,etc
。
これを行う方法はありますか?
ベストアンサー1
カンマ区切り文字列の場合は、ファイルインデックスを変数に追加して変数を印刷します。
for((i=1; i<=30; i++))
do
name="File${i}.exe"; [[ ! -e "$name" ]] && files="$files$i,"
done
echo $files | sed s/,$//
または、配列/リストに値を保存することもできます
arr=()
for((i=1; i<=30; i++))
do
name="File${i}.exe"; [[ ! -e "$name" ]] && arr+=($i)
done
(IFS=, ; echo "${arr[*]}") #to print the array with comma as separator