텍스트 파일이 있습니다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