テキスト内に少なくとも 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
エントリーを設定していただきます。 - 単語は 1 行に 1 つずつあります
WordList
。 - 大文字と小文字は区別されます (例:
The
と はthe
異なります)。 - これはコマンドラインエントリです。スクリプトでは
set Count
省略され、パラメータとして渡されます。
これで作業を開始できるはずですが、正確なニーズに合わせて変更する必要があることはほぼ間違いありません。