Tüm dosya adlarını bash'de "files" adında bir diziye yerleştirin:
files=( * )
dizinin boyutu:
echo ${#files[@]}
Bunların 2 / 3'ünü örneklem büyüklüğü olarak tanımlayın:
take=$((2*${#files[@]}/3))
for i in $(seq 1 $take)
do
r=$((RANDOM%${#files[@]}))
echo ${files[r]}
done
Bu çiftleri seçecek ve edilir değil parçalarını ve bu ile dosya adları ile test.
Yinelemeleri engellemenin en basit yolu, tüm dosyaları yinelemek ve her birini 2/3 şansla seçmek, ancak bu mutlaka 200 dosyaya yol açmayacak.
Bu, listeden seçilmişse bir dosyayı kaldıracak ve gereksinimlerinizi karşılayacaktır:
#!/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()