Linux의 파일에서 서로 다른 두 단어의 발생 횟수를 파악하는 방법은 무엇입니까?

Linux의 파일에서 서로 다른 두 단어의 발생 횟수를 파악하는 방법은 무엇입니까?

Linux의 파일에서 서로 다른 두 단어(예: "register" 및 "evn")의 발생 횟수를 파악하는 방법은 무엇입니까?

출력은 다음과 같아야 합니다.

registered:20

답변1

역방향 출력 형식(먼저 계산하고 단어는 나중에 입력)도 허용되고 더 많은 단어를 추가하는 것이 쉬운 경우에도 작동합니다.

tr -c '[:alpha:]' '\n' < /path/to/file | sort | uniq -c | grep -w 'register\|evn'
  • 같은 줄에 여러 번 나타나는 경우에도 각 단어의 발생 횟수를 계산합니다.
  • 접미사 변형을 제외하고 단어와 정확히 일치하는 항목을 계산합니다.

답변2

사용awk

awk '/register/ {r++} /evn/ {e++} END {printf("register:%d\nevn:%d\n", r, e)}' /path/to/file 

답변3

별도로 계산할 수 있습니다.

$ word=register; count=`grep -o $word /path/to/file| wc -l`; echo $word:$count
$ word=evn; count=`grep -o $word /path/to/file| wc -l`; echo $word:$count

답변4

word="registered"
echo $word:$( grep -wc $word /path/to/file )

Bash/Ksh 및 GNU grep과 함께 사용

관련 정보