입력으로 문자열 ID가 있습니다. 가장 자주 발생하는 식별자와 발생 횟수를 어떻게 계산합니까?
예
입력하다:
cat
dog
cat
dog
dog
dog
dog
fly
spider
spider
cat
cat
산출:
dog 5
답변1
sort
& 명령을 사용하여 uniq -c
다음과 같이 모든 문자열의 발생 횟수를 계산할 수 있습니다.
$ sort sample.txt | uniq -c
4 cat
5 dog
1 fly
2 spider
문자열 "dog"을 원할 경우 grep
앞이나 뒤에 사용할 수 있습니다.
뒤쪽에
$ sort sample.txt | uniq -c | grep dog
5 dog
앞으로
$ grep dog sample.txt | uniq -c
5 dog
어떻게 작동하나요?
이 명령은 uniq -c
제공된 모든 고유 문자열을 계산하지만 먼저 목록이 정렬된 순서로 되어 있어야 합니다. 이것이 바로 sort
계산을 수행하기 전에 이 명령을 사용하는 이유입니다.
이 명령은 grep
출력에서 관심 있는 내용을 선택하는 데 사용됩니다. grep
출력에서 원하는 내용에 따라 포함하거나 제외할 수 있는 필터 로 생각할 수 있습니다 .
이 sort
명령은 규칙에 따라 데이터를 정렬할 수 있습니다. 이 경우 기본 모드에서 실행되도록 하여 일련의 영숫자 정렬 규칙에 따라 데이터를 정렬합니다.
답변2
문자열만 찾고 있는 경우:
grep -cxF dog
또는
echo "dog: $(grep -cxF dog)"
작동하는 솔루션의 전체 목록:
> awk '{a[$0]++}; END {for (val in a) print val ": " a[val];}' file
spider: 2
cat: 4
fly: 1
dog: 5
답변3
데이터를 재정렬 sort
하여 사용uniq -c
sort < input.txt | uniq -c