awk之数组排序(省略 | sort)
2012-02-20 10:47
417 查看
[转]awk之数组排序(省略 | sort)
(2011-11-29 14:22:59)转载▼
标签:it | 分类:每天一滴 |
a
b
a
c
e
e
a
b
e
要求统计文中字母出现的次数,并按次数降序输出:
awk '{a[$1]++}END{for(i in a)print
i,a[i]}' file | sort-k2nr
a 3
e 3
b 2
c 1
文本的关键是如何省略掉管道:
awk '{
a[$1]++
}END{
l=asort(a,b);
for(n=l;n>0;n--){
for(i in a){
if(a[i]==b[n]){
printi,a[i];
deletea[i];
break;
}
}
}
}' file
[解析]
首先统计字母出现的次数,最后在 END 中利用asort 对数组a的值进行排序,并把排序结果保存到数组b中。然后开始降序输出用 b
的值判断是否与 a[i]的值相等,相等就打印出下标和其对应的值,然后从数组a中删除该下标,以免以后的循环再匹配到该下表的值。要是从小到大输出只须更改for循环即可。
http://blog.chinaunix.net/space.php?uid=10540984&do=blog&id=3027883
相关文章推荐
- awk 之 asort 与 asorti 数组排序区别及演示
- awk 数组排序-- asort 与 asorti
- awk 之 asort 与 asorti 数组排序区别及演示
- awk 数组排序-- asort 与 asorti
- awk 之 asort 与 asorti 数组排序区别及演示
- awk数组和split函数、asort和asorti 排序函数
- JavaScript数组使用sort排序
- ruby 数组array 排序sort 和sort!
- js中数组(Array)的排序(sort)注意事项
- 使用Array的Sort()方法对数组进行排序
- java数组排序Arrays.sort,以及Comparator接口的用法
- PHP 数组排序(sort)
- 读入文本文件data.txt中的整数,调用sort()对数组arr元素排序,最后显示出来
- 使用sort方法对数组进行排序
- 由多个Object(以Teacher为例)对象所形成的数组可以使用Arrays.sort方法进行排序(编号由低到高排序)。
- JavaScript中数组的sort排序函数和splice函数
- sort对二维字符数组排序
- Js数组排序函数sort()介绍
- awk 数组排序多种实现方法
- 使用sort()方法实现数组排序