части моего файла данных выглядитРаспределения вероятностей каждых уникальных чисел в массиве (длину неизвестной) после исключения нулей
ifile.txt
1
1
3
0
6
3
0
3
3
5
Я хотел бы найти вероятность каждого номера, за исключением нулей. например Р (1) = 2/8; Р (3) = 4/8 и так далее
выход Desire
ofile.txt
1 0.250
3 0.500
5 0.125
6 0.125
Где 1-й столбец показывает уникальные номера, кроме 0 и 2-го столбца показывает вероятность. Я старался следовать, но выглядит очень длинной идеей. Я перед проблемой в течение цикла, так как есть много уникальных номеров
n=$(awk '$1 > 0 {print $0}' ifile.txt | wc -l)
for i in 1 3 5 6 .....
do
n1=$(awk '$1 == $i {print $0}' ifile.txt | wc -l)
p=$(echo $n1/$n | bc -l)
printf "%d %.3f\n" "$i $p" >> ofile.txt
done
Спасибо @Barmar. Это хорошо работает. – Kay