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과 함께 사용