単語があり、ファイルにその単語の数パーセントが表示されることを確認したい(ファイル内の単語の総数に基づいて)。たとえば、「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}
ファイル処理後に計算された数値印刷