awk를 사용하여 텍스트에서 특정 단어의 인스턴스 수를 계산합니다.

awk를 사용하여 텍스트에서 특정 단어의 인스턴스 수를 계산합니다.

words_of_interest.txtawk한 줄에 단어가 하나씩 있는 파일이 있는 경우 한 번의 패스만 사용하여 다른 텍스트 파일에서 각 단어의 발생 횟수를 얻을 수 있는 방법(또는 다른 *nix 도구)이 있습니까 ?my_text.txt

현재 grep -c텍스트를 단어별로 검색하고 있는데, 텍스트가 크고 검색할 단어가 수백 개이기 때문에 속도가 매우 느립니다.

편집: 제공되는 예제 입력 및 출력:

[words_of_interest.txt]
joe
hi

[my_text.txt]
hi joe
hi jack
nice day today

[output]
joe 1
hi 2

EDIT2: 이 질문을 중복으로 표시한 사용자의 경우:지적하신 문제는그것은 계산에 관한 것입니다모두단어, 이것은 미리 정의된 특정 단어 세트의 인스턴스만 계산하는 것입니다.

답변1

my_text.txt고정 문자열 검색 및 공백 awk과 관련된 간단한 시나리오 의 경우words_of_interest.txt

awk 'NR == FNR{a[$0]; next}; $0 in a{b[$0]++}; 
    END{for (k in b) print k, b[k]}' words_of_interest.txt RS='[[:space:]]+' my_text.txt
hi 2
joe 1

관련 정보