Linux上のファイル内の2つの異なる単語(「register」や「evn」など)の発生回数を把握するには?
出力は次のようになります。
registered:20
答え1
リバース出力形式(最初に計算し、単語は後で入力)も許可され、より多くの単語を追加するのが簡単な場合にも機能します。
tr -c '[:alpha:]' '\n' < /path/to/file | sort | uniq -c | grep -w 'register\|evn'
- 同じ行に複数回現れる場合でも、各単語の発生回数を計算します。
- サフィックスバリアントを除いて、単語に正確に一致する項目を計算します。
答え2
使用awk
awk '/register/ {r++} /evn/ {e++} END {printf("register:%d\nevn:%d\n", r, e)}' /path/to/file
答え3
別途計算できます。
$ word=register; count=`grep -o $word /path/to/file| wc -l`; echo $word:$count
$ word=evn; count=`grep -o $word /path/to/file| wc -l`; echo $word:$count
答え4
word="registered"
echo $word:$( grep -wc $word /path/to/file )
Bash / KshとGNU grepで使用