亚洲欧美精品沙发,日韩在线精品视频,亚洲Av每日更新在线观看,亚洲国产另类一区在线5

<pre id="hdphd"></pre>

  • <div id="hdphd"><small id="hdphd"></small></div>
      學(xué)習(xí)啦 > 學(xué)習(xí)電腦 > 操作系統(tǒng) > Linux教程 > Linux如何使用awk進行數(shù)組排序

      Linux如何使用awk進行數(shù)組排序

      時間: 孫勝652 分享

      Linux如何使用awk進行數(shù)組排序

        Linux系統(tǒng)操作中,awk是款文本處理工具,提供多種功能,那么如何使用awk進行數(shù)組排序呢?其實awk數(shù)組排序的方法有很多種,下面學(xué)習(xí)啦小編就給大家詳細介紹下Linux中如何使用awk進行數(shù)組排序。

        代碼如下:

        [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

        一、通過內(nèi)置函數(shù)(asort,asorti使用) awk 3.1以上版本才支持

        1、asort使用說明

        srcarrlen=asort[srcarr,dscarr] 默認返回值是:原數(shù)組長度,傳入?yún)?shù)dscarr則將排序后數(shù)組賦值給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對鍵值 進行排序(字符串類型),將生成新的數(shù)組放入:tA中。

        二、通過管道發(fā)送到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

        通過管道,發(fā)送到外部程序“sort”排序,-r 從大到小,-n 按照數(shù)字排序,-k2 以第2列排序。通過將數(shù)據(jù)丟給第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

        三、自定義排序函數(shù)

        awk自定義函數(shù)結(jié)構(gòu):

        代碼如下:

        function funname(p1,p2,p3)

        {

        staction;

        return value;

        }《/p》 《p》以上是:awk自定義函數(shù)表示方式,默認傳入?yún)?shù)都是以引用方式傳入,return值,只能是字符型或者數(shù)值型。 不能返回數(shù)組類型。 如果返回數(shù)組類型。需要通過形參 方式傳入。再獲得?!?p》 《p》awk返回數(shù)組類型《/p》 《p》awk ‘function test(ary){ for(i=0;i《10;i++){ ary[i]=i; } return i;}BEGIN{ n=test(array); for(i=0;i《n;i++){ print array[i]; }}’

      319165