ふと思い立ったので、ターミナル上でファイルから頻出しているキーワード(スペース区切り)・文字を取得させてみることにする。 特に難しいことはなく、以下のように簡単に行える。
1. スペース区切りの頻出キーワードを抽出する
スペース区切りの頻出キーワードを抽出する場合は、以下のようにする。
コマンド | sed 's/ /\n/g;s/\t/\n/g' | grep -v ^$ | sort | uniq -c | sort -nr | head -20
例として、lsのmanの内容で抽出した結果が以下。
blacknon@BS-PUB-UBUNTU-01:~$ man ls | col | sed 's/ /\n/g;s/\t/\n/g' | grep -v ^$ | sort | uniq -c | sort -nr | head -20
20 of
17 by
16 with
15 to
15 list
14 and
13 the
12 sort
12 not
12 is
10 or
10 entries
10 do
9 print
9 file
8 if
8 for
8 a
8 -l,
6 use
2. 頻出文字を抽出する
頻出キーワードでなく、頻出文字を抽出する場合。 以下のようにコマンドを実行する。
コマンド | grep -o . | grep -v "^\s*$" | sort | uniq -c | sort -k1nr | head
blacknon@BS-PUB-UBUNTU-01:~$ man ls | col | grep -o . | grep -v "^\s*$" | sort | uniq -c | sort -k1nr | head
464 e
401 t
367 i
341 o
320 s
291 n
272 r
244 a
240 l
229 -
最もよく使われるアルファベットは e
だと言われているので、まぁまぁ納得のできる結果が返ってきたようだ。