বাশ-এ "ফাইল" নামে একটি অ্যারেতে সমস্ত ফাইলের নাম রাখুন:
files=( * )
অ্যারের আকার:
echo ${#files[@]}
তাদের মধ্যে 2/3 নমুনা আকার হিসাবে সংজ্ঞায়িত করুন:
take=$((2*${#files[@]}/3))
for i in $(seq 1 $take)
do
r=$((RANDOM%${#files[@]}))
echo ${files[r]}
done
এটি সদৃশ নির্বাচন করবে এবং ফাঁকা এবং এই জাতীয় ফাইলের সাথে পরীক্ষা করা হবে না ।
সদৃশগুলি এড়ানোর সহজতম উপায় হ'ল সমস্ত ফাইলের পুনরাবৃত্তি করা এবং 2/3 সুযোগ নিয়ে প্রত্যেককে বাছাই করা, তবে এটি অগত্যা 200 ফাইলগুলিকে নিয়ে যাবে না।
এটি যদি কোনও ফাইল তালিকা থেকে বেছে নেওয়া হয় এবং আপনার প্রয়োজনীয়তা পূরণ করে:
#!/bin/bash
files=( * )
# define 2/3 of them as sample size:
take=$((2*${#files[@]}/3))
while (( i < $take ))
do
r=$((RANDOM%${#files[@]}))
f=${files[r]}
if [[ -n $f ]]
then
i=$((i+1))
echo ${files[r]}
unset files[r]
fi
done
list.files()
...