Linux如何使用awk进行数组排序
更新日期:2015-01-19 17:52 作者:w8系统下载 来源:w8xitong.com
Linux系统操作中,awk是款文本处理工具,提供多种功能,那么如何使用awk进行数组排序呢?其实awk数组排序的方法有很多种,下面小编就给大家详细介绍下Linux中如何使用awk进行数组排序。
代码如下:
[chengmo@localhost ~]$ awk ‘BEGIN{info = “this is a test”;split(info,tA,“ ”);for(k in tA){print k,tA[k];}}’
4 test
1 this
2 is
3 a
如果需要按照顺序输出,通过键值定位方式输出。
代码如下:
[chengmo@localhost ~]$ awk ‘BEGIN{info = “this is a test”;slen=split(info,tA,“ ”);for(i=1;i《=slen;i++){print i,tA[i];}}’
1 this
2 is
3 a
4 test
一、通过内置函数(asort,asorti使用) awk 3.1以上版本才支持
1、asort使用说明
srcarrlen=asort[srcarr,dscarr] 默认返回值是:原数组长度,传入参数dscarr则将排序后数组赋值给dscarr.
代码如下:
[chengmo@localhost ~]$ awk ‘BEGIN{
a[100]=100;
a[2]=224;
a[3]=34;
slen=asort(a,tA);
for(i=1;i《=slen;i++)
{print i,tA[i];}
}’
1 34
2 100
3 224
asort只对值进行了排序,因此丢掉原先键值。
2、asorti 使用说明
代码如下:
[chengmo@localhost ~]$ awk ‘BEGIN{
a[“d”]=100;
a[“a”]=224;
a[“c”]=34;
slen=asorti(a,tA);
for(i=1;i《=slen;i++)
{print i,tA[i],a[tA[i]];}
}’
1 a 224
2 c 34
3 d 100
asorti对键值 进行排序(字符串类型),将生成新的数组放入:tA中。
二、通过管道发送到sort排序
代码如下:
[chengmo@localhost ~]$awk ‘BEGIN{
a[100]=100;
a[2]=224;
a[3]=34;
for(i in a)
{print i,a[i] | “sort -r -n -k2”;}
}’
2 224
100 100
3 34
通过管道,发送到外部程序“sort”排序,-r 从大到小,-n 按照数字排序,-k2 以第2列排序。通过将数据丢给第3方的sort命令,所有问题变得非常简单。如果以key值排序 –k2 变成 -k1即可。
代码如下:
[chengmo@localhost ~]$ awk ‘BEGIN{
a[100]=100;
a[2]=224;
a[3]=34;
for(i in a)
{print i,a[i] | “sort -r -n -k1”;}
}’
100 100
3 34
2 224
三、自定义排序函数
awk自定义函数结构:
代码如下:
function funname(p1,p2,p3)
{
staction;
系统推荐
电脑公司 Ghost W8.1 X64 极速体验版 V2015.07
电脑公司Ghost Win8.1 X64位 推荐装机版v2017.06(绝对激活)
- 番茄花园 Ghost W8.1 X64 正式装机版 2016.02 01-30
- 深度技术Ghost Win8.1 x64 增强装机版2017V06(无需激活) 05-21
- 新萝卜家园Ghost Win8.1 X64 绿色装机版2017v08(永久激活) 07-22
- 番茄花园Whost W8.1 32位 装机版 2016.08(自动激活) 07-28
- 中关村 GHOST_W8.1_32位 快速装机版 v2014.12 11-26
- 电脑公司Ghost Win8.1 64位 快速装机版v2018.09月(绝对激活) 08-27
- 新萝卜家园Ghost Win8.1 x64位 家庭装机版v201806(激活版) 05-26
- 电脑公司 GHOST W8.1 64位 装机特别版 2015.02 01-30
- 番茄花园Ghost Win8.1x86 电脑城装机版v2021.06月(自动激活) 05-11
- 系统之家Ghost Win8.1 (32位) 收藏装机版V2017.12月(免激活) 11-30
- 电脑公司Ghost Win8.1 X64位 极速通用版v201705(免激活) 05-10
- 系统之家Ghost Win8.1 64位 经典装机版2018V05(完美激活) 04-30
- 新萝卜家园Ghost Win8.1 X64 多驱动装机版V2020年04月(自动激活) 03-18
- 深度技术Ghost Win8.1 (X32) 装机装机版V201806(完美激活) 05-26
- 番茄花园Ghost W8.1 32位 增强装机版 2015.12 11-27
- 1 系统之家Ghost Win8.1 x64 推荐装机版2020年06月(无需激活)
- 2 番茄花园Ghost Win8.1x86 完美装机版v202101(绝对激活)
- 3 番茄花园Win8.1 大神2021新年春节版64位
- 4 深度技术Win8.1 完整装机版 2019.11(32位)
- 5 电脑公司Ghost Win8.1 X64 稳定装机版v2017.07月(无需激活)
- 6 雨林木风 Ghost W8.1 64位 装机版 2016.07
- 7 Ghost W8.1 32位 装机版 2016.06
- 8 新萝卜家园Ghost Win8.1 x64位 快速装机版V2019年08月(无需激活)
- 9 中关村 GHOST W8.1 X64 安全装机版 2015.06
- 10 大地系统 Ghost W8.1 32位 装机版 2016.05标准
- 1 电脑公司Ghost W8.1 x32 纯净版(免激活)2016.01
- 2 电脑公司Ghost Win8.1x86 完美纯净版V201912(无需激活)
- 3 深度技术Ghost Win8.1 X32 纯净版V2017年04月(绝对激活)
- 4 雨林木风Win8.1 Ghost 64位 老机纯净版 v2020.02
- 5 电脑公司Ghost Win8.1 64位 经典纯净版v2021.01月(完美激活)
- 6 番茄花园官网Ghost W8.132位 万能纯净版 2016.07
- 7 电脑公司Ghost Win8.1 X64位 办公纯净版V201710(无需激活)
- 8 新萝卜家园Window8.1 32位 尝鲜纯净版 v2020.04
- 9 电脑公司Ghost Win8.1x86 好用纯净版2021.08(绝对激活)
- 10 新萝卜家园Ghost Win8.1 x64位 精选纯净版v201808(绝对激活)
- 1 宏碁(acer)Ghost W8.1 32位 专用系统 V2016
- 2 联想笔记本 Ghost W8.1 32位 装机版 2016.06
- 3 华硕 GHOST W8.1 64位 极速装机版 2015.09
- 4 【2014.09】惠普专用(32位)GhostW8.1x86专业快速装机版系统
- 5 东芝笔记本 Ghost W8.1 64位 装机版 2016.05
- 6 联想笔记本 GHOST W8.1 64位 免激活专业版 2014.12
- 7 (asus华硕)GHOST W8.1 64位 特别版 2016
- 8 (toshiba东芝)GHOST W8.1 64位 旗舰版 2016
- 9 宏碁笔记本 Ghost W8.1 32位 装机版 2016.05
- 10 (dell戴尔)GHOST W8.1 64位 修正版 2016