파일의 각 날짜에 대한 행 수를 정렬하는 방법은 무엇입니까?

파일의 각 날짜에 대한 행 수를 정렬하는 방법은 무엇입니까?

다음과 같은 파일이 있습니다.

$ 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관심 있는 캐릭터를 분할 할 수 있습니다 .sortuniq -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그 이후의 출력은 키가 배열에서 나오는 순서를 보장할 수 없기 때문입니다.

관련 정보