テキストで10回以上表示されるすべての単語を検索

テキストで10回以上表示されるすべての単語を検索

txtファイル(戦争と平和..)を受け取りましたが、10回以上(数字なし)表示されるすべての単語がアルファベット順に整列されたテキストファイルを作成する必要があります。

この質問の違いは、各文章が新しい単語の先頭として扱われることです。つまり、youreは2つの単語、youreとして扱われるという意味です。

すべての句読点を新しい行に置き換え、すべてのスペースを新しい行に置き換えます。私はTrim -cを使ってすべての単語とその数を得ましたが、10回以上出現する単語だけを表示する方法がわかりません。

10回以上出てくるすべての単語を見つける方法について助けてくれてありがとう!

ベストアンサー1

< text tr -cs '[:alnum:]' '[\n*]' |
  awk '++count[$0] == 10' |
  sort

大文字と小文字を無視するには、$0に置き換えます。tolower($0)

それティー翻訳するS文字の順序は次のとおりです。補足アルシリアル番号エリックNエリンス。awk各出現の10回目の出現を印刷します。

気づくGNUシステムでは、trマルチバイト文字が正しく処理されません。。ただし、これらのシステムではgrepGNU拡張機能を使用できます-o

< text grep -Eo '[[:alnum:]]+' |
  awk '++count[$0] == 10' |
  sort

次のように変更できます。

< text grep -Eo '[^[:punct:][:space:]]+' |
  awk '++count[$0] == 10' |
  sort

両方ではないキャラクターを考えてみてください。指す評価もできません。スペース(またはtr -s '[:punct:][:space:]' '[\n*]'GNU以外のシステム、またはASCIIテキスト全体)戦争と平和のテキスト同じ結果を提供します。

Unicode 結合アクセントは次のように分類されるため、少なくとも GNU システムでは依然として誤った結果が生じる可能性があります。まさか東門(アクセント文字は結合されていますが、このテキストには表示されません。)

おすすめ記事