Ubuntu14.04
通常,awk逐行处理文本。awk每接收文件的一行,然后执行相应的命令来处理。
用legal文件来做示例
$ cat /etc/legal
The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.
$ awk -F : '/law/{count++} END{print "the count is ",count}' /etc/legal
the count is 1
$ awk -F : '/the/{count++} END{print "the count is ",count}' /etc/legal
the count is 3
找到指定单词,自定义变量count自增,最后输出语句和count值
命令sort,把各行按首字母排列顺序重新排列起来
综合起来,命令就是
awk -F' ' '{for(i=1;i<=NF;i=i+1){print $i}}' /etc/legal |
sort|uniq -c|sort -nr|awk -F' ' '{printf("%s %s\n",$2,$1)}'
统计/etc/legal中单词出现次数,并以“单词 次数”格式输出结果