문자열의 발생 횟수를 계산합니다.

문자열의 발생 횟수를 계산합니다.

입력으로 문자열 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

관련 정보