【Shell案例】【awk map计数&sort按指定列排序】9、统计每个单词出现的个数
描述
写一个 bash脚本以统计一个文本文件 nowcoder.txt 中每个单词出现的个数。
为了简单起见,你可以假设:
nowcoder.txt只包括小写字母和空格。
每个单词只由小写字母组成。
单词间由一个或多个空格字符分隔。
示例:
假设 nowcoder.txt 内容如下:
welcome nowcoder
welcome to nowcoder
nowcoder
你的脚本应当输出(以词频升序排列):
to 1
welcome 2
nowcoder 3
说明:
不要担心个数相同的单词的排序问题,每个单词出现的个数都是唯一的。
思路:循环+map存每个key的个数【累加】(很复杂,不考虑)、awk分析工具
方法1:awk计数+sort排序
-k2 n表示按第二列(2k)数值的大小(n)排序
#!/bin/bash cat nowcoder.txt| awk '{for(i=1;i<=NF;i++){ arr[$i]++; }} END{ for(j in arr){ print j" "arr[j]; } }' | sort -k 2n
本文来自博客园,作者:哥们要飞,转载请注明原文链接:https://www.cnblogs.com/liujinhui/p/16219578.html

浙公网安备 33010602011771号