国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

Linux|Centos|Ubuntu|系統(tǒng)進(jìn)程|Fedora|注冊(cè)表|Bios|Solaris|Windows7|Windows10|Windows11|windows server|

服務(wù)器之家 - 服務(wù)器系統(tǒng) - Linux - Linux如何使用awk文本處理工具進(jìn)行數(shù)組排序

Linux如何使用awk文本處理工具進(jìn)行數(shù)組排序

2019-10-17 15:15Linux教程網(wǎng) Linux

awk是款文本處理工具,提供多種功能,那么如何使用awk進(jìn)行數(shù)組排序呢?下面小編就給大家詳細(xì)介紹下Linux中如何使用awk進(jìn)行數(shù)組排序

Linux系統(tǒng)操作中,awk是款文本處理工具,提供多種功能,那么如何使用awk進(jìn)行數(shù)組排序呢?其實(shí)awk數(shù)組排序的方法有很多種,下面小編就給大家詳細(xì)介紹下Linux中如何使用awk進(jìn)行數(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

  如果需要按照順序輸出,通過(guò)鍵值定位方式輸出。

  代碼如下:

  [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

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

  1、asort使用說(shuō)明

  srcarrlen=asort[srcarr,dscarr] 默認(rèn)返回值是:原數(shù)組長(zhǎng)度,傳入?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只對(duì)值進(jìn)行了排序,因此丟掉原先鍵值。

  2、asorti 使用說(shuō)明

  代碼如下:

  [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對(duì)鍵值 進(jìn)行排序(字符串類型),將生成新的數(shù)組放入:tA中。

  二、通過(guò)管道發(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

  通過(guò)管道,發(fā)送到外部程序“sort”排序,-r 從大到小,-n 按照數(shù)字排序,-k2 以第2列排序。通過(guò)將數(shù)據(jù)丟給第3方的sort命令,所有問(wèn)題變得非常簡(jiǎn)單。如果以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ù)表示方式,默認(rèn)傳入?yún)?shù)都是以引用方式傳入,return值,只能是字符型或者數(shù)值型。 不能返回?cái)?shù)組類型。 如果返回?cái)?shù)組類型。需要通過(guò)形參 方式傳入。再獲得。《/p》 《p》awk返回?cái)?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]; }}’ 

  排序函數(shù)

  代碼如下:

  #arr 傳入一維數(shù)組 《/p》 《p》#key 排序類型 1是按照值排序 2按照鍵值 《/p》 《p》#datatype 比較類型 1按照數(shù)字排序 2按照字符串排序 《/p》 《p》#tarr 排序返回的數(shù)組 《/p》 《p》#splitseq 分割字符串 數(shù)組中鍵與值之間分割字符串 《/p》 《p》#return 數(shù)組長(zhǎng)度 《/p》 《p》#實(shí)現(xiàn)思路,將原始數(shù)組a[‘a’]=100 排序后變成 a[1]=a分隔符100 ,然后按照下標(biāo)遞歸顯示內(nèi)容。 本排序使用冒泡方式進(jìn)行。 《/p》 《p》 《/p》 《p》function sortArr(arr,key,datatype,tarr,splitseq)

  { 《/p》 《p》 if(key ~ /[^1-2]/)

  {return tarr;}

  for(k in arr)

  {

  tarr[++alen]=(k“”splitseq“”arr[k]);

  } 《/p》 《p》 for(m=1;m《=alen;m++)

  {

  for(n=1;n《=alen-m-1;n++)

  {

  split(tarr[m],tm,splitseq);

  split(tarr[n+1],tn,splitseq); 《/p》 《p》 tnum=tarr[m];

  if(datatype==1)

  {

  if(tm[key]+0《tn[key]+0)

  {

  tarr[m]=tarr[n+1];

  tarr[n+1]=tnum;

  }

  }

  else

  {

  if((tm[key]“”) 《 (tn[key]“”))

  {

  tarr[m]=tarr[n+1];

  tarr[n+1]=tnum;

  }

  }

  }

  }

  return alen;

  }

  完整代碼如下:

  代碼如下:

  [chengmo@centos5 ~]$ awk ‘BEGIN{

  a[“a”]=100;

  a[“b”]=110;

  a[“c”]=10;

  splitseq=“%%”;

  alen=sortArr(a,2,1,tarr,splitseq);

  for(m=1;m《=alen;m++)

  {

  split(tarr[m],ta,splitseq);

  print m,ta[1],ta[2];

  }

  }

  function sortArr(arr,key,datatype,tarr,splitseq)

  { 《/p》 《p》 if(key ~ /[^1-2]/)

  {return tarr;}

  for(k in arr)

  {

  tarr[++alen]=(k“”splitseq“”arr[k]);

  } 《/p》 《p》 for(m=1;m《=alen;m++)

  {

  for(n=1;n《=alen-m-1;n++)

  {

  split(tarr[m],tm,splitseq);

  split(tarr[n+1],tn,splitseq); 《/p》 《p》 tnum=tarr[m];

  if(datatype==1)

  {

  if(tm[key]+0《tn[key]+0)

  {

  tarr[m]=tarr[n+1];

  tarr[n+1]=tnum;

  }

  }

  else

  {

  if((tm[key]“”) 《 (tn[key]“”))

  {

  tarr[m]=tarr[n+1];

  tarr[n+1]=tnum;

  }

  }

  }

  }

  return alen;

  }

  ’ 《/p》 《p》1 b 110

  2 a 100

  3 c 10

  上面就是Linux使用awk進(jìn)行數(shù)組排序的方法介紹了,本文一共介紹了3種方法,每種方法都能夠?qū)崿F(xiàn)awk的數(shù)組排序,可選擇任一方法實(shí)現(xiàn)。

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 一区二区三区四区免费 | 欧美成人综合 | 91精品国产一区二区 | 日韩视频一区 | 91夜夜夜 | 美日韩在线 | 国产一区二区三区免费播放 | 国产目拍亚洲精品99久久精品 | 亚洲人免费视频 | 久久精品国产清自在天天线 | 深夜在线 | 91精品国产综合久久婷婷香蕉 | 99在线播放 | 国产在线观看二区 | 国内精品久久久久久影视8 有码在线 | 一级爱| 一区在线观看 | 久久妇女 | 一级全黄少妇性色生活片免费 | av中文字幕在线播放 | 欧美影 | 日韩高清在线一区 | 欧美精品成人一区二区在线 | 亚洲久久久久 | 韩日中文字幕 | 久色| 精品少妇一区二区三区日产乱码 | 国产在线网站 | 亚洲激情一区二区三区 | 欧美精品网站 | 亚洲日韩中文字幕一区 | 最新中文字幕视频 | 日本99精品 | 国产成人免费视频网站高清观看视频 | 久久综合久久综合久久综合 | 欧美在线观看免费观看视频 | 欧美精品久久久久久久久老牛影院 | 日韩视频一区二区 | 日韩一区二区三区四区 | 成人激情视频 | 99在线免费视频 |