b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

awk中asort和asorti排序数组的使用和区别

电脑杂谈  发布时间:2020-03-25 05:14:50  来源:网络整理

php数组排序_json 数组排序_awk数组排序

数组是awk的亮点. 我如何遍历数组? for(i in a)是最有效的awk数组排序,也是我们的最爱;但问题是它没有排序. 今天我们学习了各种各样的函数,asorti函数可以解决我们的问题!

asort(a [,b])是对数组的值进行排序,并且会丢失原始键值;返回数组元素的数量.

asorti(a,b)对数组索引进行排序;返回数组元素的数量.

json 数组排序_php数组排序_awk数组排序

数据文件数据内容:

1 1 20
2 25 45
3 20 94
4 60 30
[li0924@localhost awk]$ awk '{a[$1]=$2}END{for(i in a) print i,a[i]}' data
60 30
1 20
20 94
25 45
[li0924@localhost awk]$ awk '{a[$1]=$2}END{for(i=1;i<=asort(a,b);i++) print i"\t"b[i]}' data
1  20
2  30
3  45
4  94

[Parse]在命令的最后执行中awk数组排序,END中的asort对数组a的值进行排序,将排序后的索引存储到新生成的数组b中,并丢弃数组a的索引,但是此时,数组a不是一个空数组,[1]仍然是20.

awk数组排序_json 数组排序_php数组排序

b [1] = 20

b [2] = 30

b [3] = 45

php数组排序_awk数组排序_json 数组排序

b [4] = 94

不能直接打印(输出)数组值. 使用for循环获取值的索引,并输出排序后的数组b的索引值和对应的值.

[li0924@localhost awk]$ awk '{a[$1]=$2}END{l=asorti(a,b);for(i=1;i<=l;i++) print i"\t"b[i]"\t"a[b[i]]}' data
1  1  20
2  20   94
3  25   45
4  60   30

php数组排序_awk数组排序_json 数组排序

[解析]在命令的最后执行中,END中的asorti对数组a的索引进行排序,将排序后的索引存储到新生成的数组b中,并将数组a的长度分配给变量l.

b [1] = 1

b [2] = 20

b [3] = 25

b [4] = 60

不能直接打印(输出)数组值. 使用for循环获取下标的值,输出排序后的数组b的索引值和相应的值,然后将数组b的值用作数组a的索引. 值显示数组a的值.


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-151416-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      每日福利
      热点图片
      拼命载入中...