ディレクトリから見つからないすべてのファイルのカンマ区切りインデックスのリストをどのように抽出できますか?

ディレクトリから見つからないすべてのファイルのカンマ区切りインデックスのリストをどのように抽出できますか?

/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 

おすすめ記事