awk4.0对数组value排序
有朋友问了一个问题,要求对下面这段文本进行处理:
http://www.baidu.com/2.html
http://www.baidu.com/2.html
http://www.baidu.com/2.html
http://www.baidu.com/2.html
http://www.baidu.com/2.html
http://www.163.com/index.html
http://www.163.com/1.html
http://www.163.com/index.html
http://www.sina.com.cn/index.html
http://www.sina.com.cn/3.html
http://www.sina.com.cn/2.html
http://www.sina.com.cn/2.html
输出结果:
www..com
www.sina.com.cn
www.baidu.com
要求对输出的第2列进行升序排序。awk4.0以下版本直接用内置的排序函数asort、asorti貌似没有办法做出来。简单的办法就是交给shell来排序:
awk -F/+ '{a[$2]++}END{for(i in a)print i,a[i]|"sort -k2n"}' file
www.163.com 3
www.sina.com.cn 4
www.baidu.com 5
如果一定要用纯awk来做,方法如下,awk版本需要4.0+。
awk -F/+ 'BEGIN{PROCINFO["sorted_in"]="@val_num_asc"}{a[$2]++}END{for(i in a){print i,a[i]}}' file
www..com
www.sina.com.cn
www.baidu.com
降序:
awk -F/+ 'BEGIN{PROCINFO["sorted_in"]="@val_num_desc"}{a[$2]++}END{for(i in a){print i,a[i]}}' file
www.baidu.com
www.sina.com.cn
www..com
PROCINFO["sorted_in"]还有@unsorted、@ind_str_asc、@ind_num_asc、@val_type_asc、@val_str_asc、@ind_str_desc。。。。等特殊值可用,具体用法可以参考https://www.gnu.org/software/gawk/manual/html_node/Controlling-Scanning.html。
awk4.0对数组value排序的更多相关文章
- js的sort(0实现数组的排序
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...
- iOS之数组的排序(升序、降序及乱序)
#pragma mark -- 数组排序方法(升序) - (void)arraySortASC{ //数组排序 //定义一个数字数组 NSArray *array = @[@(3),@(4),@(2) ...
- [ActionScript 3.0] 对数组中的元素进行排序Array.sort()的方法
对数组中的元素进行排序. 此方法按 Unicode 值排序. (ASCII 是 Unicode 的一个子集.) 默认情况下,Array.sort()按以下方式进行排序: 1. 排序区分大小写(Z优先于 ...
- javascript:算法之数组sort排序
数组sort排序 sort比较次数,sort用法,sort常用 描述 方法sort()将在原数组上对数组元素进行排序,即排序时不创建新的数组副本.如果调用方法sort()时没有使用参数,将按字母顺序( ...
- PHP array_multisort—对多个数组或多维数组进行排序
PHP中array_multisort可以用来一次对多个数组进行排序,或者根据某一维或多维对多维数组进行排序. 关联(string)键名保持不变,但数字键名会被重新索引. 输入数组被当成一个表的列并以 ...
- javascript数组对象排序
javascript数组对象排序 JavaScript数组内置排序函数 javascript内置的sort函数是多种排序算法的集合 JavaScript实现多维数组.对象数组排序,其实用的就是原生的s ...
- Objective-C之NSArray(数组)默认排序与自定义排序
在讲OC中数组的排序之前我先上一段代码,它是简单数组排序的一种方法(也就是元素是字符串或者数据的数组,因为后面要讲元素为类的数组排序) 代码1: NSArray *sortArr4 = [sortAr ...
- JavaScript 使用 sort() 方法从数值上对数组进行排序
使用 sort() 方法从数值上对数组进行排序. <html> <body> <script type="text/javascript"> f ...
- C#数组的排序
对于数组的排序有好多种方法,上面这种是最常规的方法,当然在Array类中有两个方法就是专门来完成排序的,一会我们再来看这两方法,下面我们还是来看一下语法吧,只要搞懂语法了,就可以自己随便排序了. 冒泡 ...
随机推荐
- 20155327Exp6 信息搜集与漏洞扫描
20155327Exp6 信息搜集与漏洞扫描 实验过程 一.信息搜集 whois 在kali终端输入whois 网址,查看注册的公司.服务.注册省份.传真.电话等信息. dig或nslookup域名查 ...
- TCP/IP协议、HTTP协议
一.序: TCP/IP协议是程序开发的基础知识,我们都知道它可以实现不同计算机之间的通信,它是什么意思?怎么实现通信的? 二.TCP/IP协议: (1)协议:约定 (2)tcp/ip:tcp是传输控制 ...
- 如何搭建openvpn
一.什么是openvpn Openvpn是一款基于openssl的开源vpn软件,它可以很好的运行在linux及windows各发行版本中,它的核心技术是虚拟网卡,其实它更像是一个底层的网卡驱动软件, ...
- 22-[jQuery]-选择器, js jQuery对象转换
1.基础选择器 <!DOCTYPE html> <html lang="en"> <head> <meta charset="U ...
- 2、rbac组件 后台布局模板,权限按钮,菜单,可拔插,路径重定向
1.后台布局管理 https://www.cnblogs.com/venicid/p/7772742.html#_label0 1.通用模板 overflow: auto; //在a和b模板中进行切换 ...
- Java Swing:JPanel添加边框
一.JPanel添加不同边框的效果图如下所示 二. 不同边框样式的代码实现 JPanel jpanel = new JPanel(); jpanel.setBorder(BorderFactory.你 ...
- maven 打 fatjar
备忘. 1. <plugins> <plugin> <artifactId>maven-assembly-plugin</artifactId> < ...
- 开源项目CIIP(企业信息管理系统框架).2018.0904版更新介绍
源码: https://github.com/tylike/CIIP https://gitee.com/ciip/CIIP 一,CIIP的目标是什么? 更加简单,快速的建立信息类管理系统.让实施人员 ...
- APP性能测试中的几个重要概念
转载一篇文章,关于app性能测试的几个概念,对于想要接触app测试的朋友或许有些帮助. 我们在使用各种 App 的时候基本会关注到:这款软件挺耗流量的?运行起来设备掉电有点快嘛?切换页面的时候还会有卡 ...
- eclipse—Maven项目打包成exe
1.下载打包工具j2ewiz 友情连接:https://pan.baidu.com/s/1Rcoqix5QcrJVI1of9h7qbQ提取码:vqn1 2.选中想要打包的文件,右击—Export 按 ...