Linux를 사용하여 가장 일반적인 단어를 카운터로 파일에 쓰기

Linux를 사용하여 가장 일반적인 단어를 카운터로 파일에 쓰기

텍스트에 X번 이상 나타나는 단어를 파일에 쓰고 싶습니다. 예를 들면 다음과 같습니다.

a
b
a
c
b

X = 2라면 다음과 같은 결과를 얻을 수 있습니다.

a
b

답변1

이것은 기본 작업을 수행하지만 큰 단어 목록에서는 속도가 상당히 느립니다.

set Count
sort < WordList | uniq | while read w; \
    do [ $(grep -c "^$w$" WordList) -ge $1 ] && echo $w; done

더 빠른 답변(Kamil Maciorowski에게 감사드립니다):-

set Count
sort < WordList | uniq -c | while read c w; do [ $c -ge $1 ] && echo $w; done

이는 다음을 가정합니다.

  • 당신은 자신의 항목을 설정 FileList합니다 Count.
  • 에서는 단어가 한 줄에 하나씩 있습니다 WordList.
  • 대소문자가 중요합니다(예: The와는 the다름).
  • 이것은 명령줄 항목입니다. 스크립트에서는 set Count생략되고 매개변수로 전달됩니다.

정확한 요구 사항에 맞게 수정해야 하지만 거의 확실하게 이를 시작해야 합니다.

관련 정보