다음과 같은 파일이 있습니다.
$ more messages
Jan 2 random text
Jan 2 random text
Jan 3 random text
Jan 2 random text
Jan 3 random text
Jan 3 random text
Jan 3 random text
나는 다음을 사용하여 이것을 원합니다 sort
.
Jan 2 : 3
Jan 3 : 4
답변1
다음을 사용하여 cut
관심 있는 캐릭터를 분할 할 수 있습니다 .sort
uniq -c
$ < input cut -c1-6 |sort |uniq -c
3 Jan 2
4 Jan 3
또는 awk
출력 형식에 대한 특별한 요구 사항이 있는 경우 다음을 사용하십시오.
$ awk '{a[substr($0, 1, 6)] += 1} END { for (x in a) printf "%s : %d\n", x, a[x] }' < x | sort
Jan 2 : 3
Jan 3 : 4
첫 번째 블록은 연관 배열을 사용하여 각 날짜의 발생 횟수를 계산하고 마지막 END 블록은 날짜와 해당 개수를 인쇄합니다. sort
그 이후의 출력은 키가 배열에서 나오는 순서를 보장할 수 없기 때문입니다.