ファイル内の単語の発生率を見つける方法

ファイル内の単語の発生率を見つける方法

単語があり、ファイルにその単語の数パーセントが表示されることを確認したい(ファイル内の単語の総数に基づいて)。たとえば、「you」という単語が8つの単語を含むファイルに2回表示されると、出力は25%になります。

私は試した: fgrep -ow

答え1

次のようにファイルの総単語数を取得できます。

nw=`wc -w < /path/to/file`

ワード/パターンの発生回数

occurrences=`egrep -c <pattern> /path/to/file`

その後、パーセンテージを簡単に計算し、結果を変数に入れることができます。

result=`echo "scale=2; $occurrences*100/$nw" | bc`

追加するには、たとえば、%次のようにします。次のようにしてください

echo $result'%'

答え2

示されたものと同じロジックを使用します。URL

tr ' ' '\n' < file.txt | awk '{if($0=="her"){nmw+=1}}END{print ((nmw*100)/NR)}'

答え3

そしてawk

awk -vw="word" 'BEGIN{RS="[^a-zA-Z]+"} $0==w{c++} END{printf "%.1f%%\n",c*100/NR}' file
  • -vw="word"「word」を含む変数が与えられると、awkそれはw単語であり、パーセンテージが必要です。
  • BEGIN{RS="[^a-zA-Z]+"}行区切り文字を文字以外のすべての項目に設定すると、各単語は個別に処理されます。
  • $0==w{c++}単語が見つかったらカウンタをインクリメントします。
  • END{printf "%.1f%%\n",c*100/NR}ファイル処理後に計算された数値印刷

関連情報