awk 之 asort 与 asorti 数组排序区别及演示
来源:互联网 发布:知乎推荐书单排行榜 编辑:程序博客网 时间:2024/04/30 15:57
两者排序区别:
asort 是对数组的值进行排序,并且会丢掉原先键值;
asorti是对数组的下标进行排序。
数据文件:
12 34
78 90
23 45
78 90
23 45
1. awk是关联数组。for…in循环输出时候,默认打印出来是无序数组。
[root@zhenjiang ~]# awk '{a[$1]=$2}END{for(i in a) print i,a[i]}' test
78 90
12 34
23 45
2. asort排序输出
[root@zhenjiang ~]# awk '{a[$1]=$2}END{slen=asort(a,b);for(i=1;i<=slen;i++) print i"\t"a[i]"\t"b[i]}' test
134
245
390
在最后执行命令,END中 asort对数组a的值进行排序,把排序后的下标存入新生成的数组b中,丢弃数组a下标值,再把数组a的长度赋值给变量slen。
b[1]=34
b[2]=45
b[3]=90
此时a已经是空数组。
数组的值是无法直接print(输出)的,使用for循环取出数值的下标,输出排序后的数组b下标值及对应数值
3. asorti 排序输出
[root@zhenjiang ~]# awk '{a[$1]=$2}END{slen=asorti(a,b);for(i=1;i<=slen;i++) print i"\t"b[i]"\t"a[b[i]]}' test
112 34
223 45
378 90
在最后执行命令,END中 asorti对数组a的下标进行排序,并把排序后的下标存入新生成的数组b中,并把数组a的长度赋值给变量l。
b[1]=12
b[2]=23
b[3]=78
数组的值是无法直接print(输出)的,使用for循环取出数值的下标,输出排序后的数组b下标值及对应数值,再把数组b的值当作数组a的下标值打印数组a的值。
0 0
- awk 之 asort 与 asorti 数组排序区别及演示
- awk 之 asort 与 asorti 数组排序区别及演示
- awk 数组排序-- asort 与 asorti
- awk-排序(asort,asorti)
- awk数组和split函数、asort和asorti 排序函数
- Awk排序函数asort和asorti的使用区别
- PHP数组排序函数:sort、asort和ksort的不同
- PHP基础-数组排序Sort()、Rsort()、Asort()、Ksort()、Arsort()、Krsort()
- php数组排序—sort() asort() ksort() rsort() arsort() krsort()
- awk之数组排序(省略 | sort)
- awk 数组 排序
- 数组排序(awk)
- shell awk数组&排序
- php排序 asort usort实例 对数组的多个字段排序 稳定排序
- sort与asort
- 插入排序之shell排序分析及源码演示
- 我们用sort asort 对数组排序时 中文如何按拼音排序的问题
- sort,ksort,asort的区别
- vim深入学习之文件缓冲区列表
- 超棒的介绍DBCC PAGE的blog
- keil 搭建stm32工程
- WinCE的C#中使用StreamReader 来读取TXT文档,读取文本文档。
- 将图片保存到ios相册
- awk 之 asort 与 asorti 数组排序区别及演示
- LeetCode 64 Merge Two Sorted Lists
- ArcGIS教程:打印和导出时态地图
- 泛型约束及lambda表达式,表达式树
- Swift --- 2.13继承
- 第107天
- android js 和java互相调用
- MFC对文件按文件名进行排序
- Eclipse 快捷键大全