문서에서 각 단어의 발생 횟수/히스토그램을 가져옵니다.

문서에서 각 단어의 발생 횟수/히스토그램을 가져옵니다.

파일의 각 단어 수를 찾는 방법은 무엇입니까?

텍스트 파이프라인이나 문서의 각 단어에 대한 히스토그램을 원합니다.

문서를 단어 목록으로 분할하여 각 단어가 새 줄에 표시되도록 할 수 있었습니다. 텍스트 문서에서 직접 가져올 수 있다면 거기에 있는 솔루션도 좋습니다.

> cat doc.txt 
word
second
third
word
really
> cat doc.txt | ... # then count occurrences of each word \
                      and print in descending order separated by delimiter
word 2
really 1
second 1
third 1

파일이 1GB의 텍스트이고 기하급수적인 시간 로드를 처리할 수 없으므로 다소 효율적이어야 합니다.

답변1

한 가지 방법은 다음과 같습니다.

$ sort file | uniq -c | sort -nrk1 | awk '{print $2,$1}'
word 2
third 1
second 1
really 1

관련 정보