У меня есть текстовый файлhttps://1drv.ms/t/s!AjlMpzDMn2h7hWKyBGBxdhHXwjm8
Последний столбец заполнен числами от 1 до 30.
Мне нужен код, который выведет список всех чисел от 1 до 30, а также покажет, сколько раз они встречаются в этом столбце.
Так что это будет выглядеть так
1=13
2=10
3=12
.... up until 30.
В настоящее время у меня есть фрагмент кода, который, как я считаю, будет работать, если я правильно его изменю.
awk -F':' 'BEGIN{ split("sparkling fine fortified sweet white red", words, " ") }
$3 in words{ c[$3]++ }
END{ for(i in words) print words[i]"="c[i] }' file
решение1
Простой подход (с первыми строками из файла):
:> awk -F: '{ print $5; }' input | sort -n | uniq -c
2 1
5 2
4 3
5 4
2 5
:> awk -F: '{ print $5; }' input | sort -n | uniq -c |
while read count number; do echo "${number}=${count}"; done
1=2
2=5
3=4
4=5
5=2
только с awk
:> awk -F: '{a[$5]++}; END { for(i=1;i<31;i++) printf "%2d=%d\n",i,a[i]; }' input
1=2
2=5
3=4
4=5
5=2