已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
chengmolocalhost $ awk BEGINinfo = this is a test;slen=split(info,tA, );for(i=1;i=slen;i+)print i,tAi; 1 this2 is3 a4 test一、通过内置函数(asort,asorti使用) awk 3.1以上版本才支持asort使用说明srcarrlen=asortsrcarr,dscarr 默认返回值是:原数组长度,传入参数dscarr则将排序后数组赋值给dscarr.chengmolocalhost $ awk BEGINa100=100;a2=224;a3=34;slen=asort(a,tA);for(i=1;i=slen;i+)print i,tAi;1 342 1003 224asort只对值进行了排序,因此丢掉原先键值。2、asorti 使用说明chengmolocalhost $ awk BEGINad=100;aa=224;ac=34;slen=asorti(a,tA);for(i=1;i=slen;i+)print i,tAi,atAi;1 a 2242 c 343 d 100asorti对键值 进行排序(字符串类型),将生成新的数组放入:tA中。二、通过管道发送到sort排序chengmolocalhost $awk BEGINa100=100;a2=224;a3=34;for(i in a)print i,ai | sort -r -n -k2;2 224100 1003 34通过管道,发送到外部程序“sort”排序,-r 从大到小,-n 按照数字排序,-k2 以第2列排序。通过将数据丢给第3方的sort命令,所有问题变得非常简单。如果以key值排序 k2 变成 -k1即可。chengmolocalhost $ awk BEGINa100=100;a2=224;a3=34;for(i in a)print i,ai | sort -r -n -k1;100 1003 342 224三、自定义排序函数awk自定义函数结构:function funname(p1,p2,p3) staction; return value;以上是:awk自定义函数表示方式,默认传入参数都是以引用方式传入,return值,只能是字符型或者数值型。 不能返回数组类型。 如果返回数组类型。需要通过形参 方式传入。再获得。awk返回数组类型awk function test(ary)for(i=0;i10;i+) aryi=i;return i;BEGINn=test(array);for(i=0;in;i+) print arrayi;排序函数#arr 传入一维数组#key 排序类型 1是按照值排序 2按照键值#datatype 比较类型 1按照数字排序 2按照字符串排序#tarr 排序返回的数组#splitseq 分割字符串 数组中键与值之间分割字符串#return 数组长度#实现思路,将原始数组aa=100 排序后变成 a1=a分隔符100 ,然后按照下标递归显示内容。 本排序使用冒泡方式进行。function sortArr(arr,key,datatype,tarr,splitseq) if(key /1-2/) return tarr; for(k in arr) tarr+alen=(ksplitseqarrk); for(m=1;m=alen;m+) for(n=1;n=alen-m-1;n+) split(tarrm,tm,splitseq); split(tarrn+1,tn,splitseq); tnum=tarrm; if(datatype=1) if(tmkey+0tnkey+0) tarrm=tarrn+1; tarrn+1=tnum; else if(tmkey) (tnkey) tarrm=tarrn+1; tarrn+1=tnum; return alen;完整代码如下:chengmocentos5 $ awk BEGINaa=100;ab=110;ac=10;splitseq=%;alen=sortArr(a,2,1,tarr,splitseq);for(m=1;m=alen;m+) split(tarrm,ta,splitseq); print m,ta1,ta2;function sortArr(arr,key,datatype,tarr,splitseq) if(key /1-2/) return tarr; for(k in arr) tarr+alen=(ksplitseqarrk); for(m=1;m=alen;m+) for(n=1;n=alen-m-1;n+) split(tarrm,tm,splitseq); split(tarrn+1,tn,splitseq); tnum=tarrm; if(datatype=1) if(tmkey+0tnkey+0) tarrm=tarrn+1; tarrn+1=tnum; else if(tmkey) (tnkey) tarrm=tarrn+1; tarrn+
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公园保洁员聘用合同
- 隔油池维保合同标准文本
- 部编版四年级下册道德与法治期末测试卷ab卷
- 部编版四年级下册道德与法治期末测试卷及答案【名师系列】
- 部编版四年级下册道德与法治期末测试卷附参考答案【模拟题】
- 小学六年级下册数学期末测试卷(培优a卷)
- 人教版六年级下册数学期末测试卷【夺冠系列】
- 人教版六年级下册数学期末测试卷含答案(模拟题)
- 人教版六年级下册数学期末测试卷带答案ab卷
- 人教版六年级下册数学期末测试卷附答案【夺分金卷】
- 六年级上册语文教案-课文16 古诗三首:竹石|语文S版 (1)
- S7200系列plc基本指令及逻辑控制应用技术
- 统编版六年级语文下册试题-2020年小升初专题训练:句子排序、仿写(含答案
- 新版 人教版小学一年级下册数学100以内的加减法 解决问题 练习题
- 申报高级、中级、初级职称材料封面
- 钢板桩施工方案(完整版)
- 小学生交通安全教育培训安全行为习惯养成教育课件ppt模板
- 连续梁合拢段及体系转换施工技术方案(完整版)
- 应急管理概论——理论与实践教学全套课件1
- 高考考务会议校长讲话
- 中考语文作文评分标准表-
评论
0/150
提交评论