如何在linux中排序awk数组?很多新手对此不是很清楚。为了帮助您解决这个问题,本站将在下面向您详细解释。有这方面需求的人可以借鉴一下,希望你能有所收获。
代码如下:
[程默@localhost ~]$ awk \’BEGIN{info=\’这是测试\’;拆分(信息,Ta \’ \’);for(k in tA){print k,Ta[k];}}\’
4测试
1这个
2是
3 a
如果需要按顺序输出,则通过键值定位输出。
代码如下:
[程默@localhost ~]$ awk \’BEGIN{info=\’这是测试\’;slen=split(info,tA,\’ \’);for(I=1;i=sleni ){print i,Ta[I];}}\’
1这个
2是
3 a
4测试
一、通过内置函数(asort,asorti使用) awk 3.1以上版本才支持
1.asort说明
srcarrlen=a art[srcarr,dscarr]默认返回值是原始数组长度,传入的参数dscarr将排序后的数组赋给dscarr。
代码如下:
[程默@localhost ~]$ awk \’BEGIN{
a[100]=100;
a[2]=224;
a[3]=34;
slen=asort(a,Ta);
for(I=1;i=slenI)
{print i,Ta[I];}
}\’
1 34
2 100
3 224
Asort只对值进行排序,因此它会丢失原始键值。
2.使用asorti的说明
代码如下:
[程默@localhost ~]$ awk \’BEGIN{
a[\’ d \’]=100;
a[\’ a \’]=224;
a[\’ c \’]=34;
slen=asorti(a,Ta);
for(I=1;i=slenI)
{print i,tA[i],a[Ta[I]];}
}\’
1 a 224
2c 34
3 d 100
Asorti对键值(字符串类型)进行排序,并将生成的新数组放入:tA。
二、通活动:慈云数据爆款香港服务器,CTG+CN2高速带宽、快速稳定、平均延迟10+ms 速度快,免备案,每月仅需19元!! 点击查看过管道发送到sort排序
代码如下:
[程默@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
通过管道发送给外部程序排序,-r从小到大,-n按数字排序,-k2按第二列排序。通过将数据扔给第三方的排序命令,所有的问题都变得非常简单。如果ndash按键值排序;K2变成-k1。
代码如下:
[程默@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自定义函数结构:
代码如下:
函数funname(p1,p2,p3)
{
堆叠;
返回值;
}/p
p以上是:awk自定义函数表示,默认参数都是引用传入的,返回值只能是字符型或者数字型。无法返回数组类型。如果返回数组类型。它需要作为形式参数传入。再拿一次。/p
Pawk返回数组类型/p
pawk \’ function test(ary){ for(I=0;i10I){ ary[I]=I;}返回I;
}BEGIN{ n=test(array); for(i=0;i
还没有评论,来说两句吧...