[Linux]awk学習ノート-語周波数統計
1660 ワード
背景
awkはファイルとデータを処理するために使用され、クラスunixの次のツールであり、プログラミング言語でもあります.条件判断をサポートし、forとwhileループをサポートします.
例
192.統計語周波数
bashスクリプトを書いて、テキストファイル
words.txt
の各単語が現れる頻度を統計します.方法1:
awk '{for (i=1; i <= NF; i++) {map[$i]++}}; END {for (w in map) {print w, map[w]}}' words.txt | sort -rn -k2
awk 'BEGIN {FS=" "}; {for (i=1; i <= NF; i++) {map[$i]++}}; END {for (w in map) {print w, map[w]}}' words.txt | sort -rn -k2
{map[$i]++}
は、(map[$i]++)
またはmap[$i]++
と書くことができる.end
は捨てられません.awkのデフォルトの区切り記号は
' '
なので、上記の2つの書き方は等価です.方法2:
cat words.txt | xargs -n1 | sort | uniq -c | sort -rn -k1 | awk '{print $2, $1}'