- 1、本文档共75页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* $ sort -k 2 students students.sorted $ sort -k 1 scores scores.sorted $ join -1 2 -2 1 students.sorted scores.sorted | awk {print $2,$1,$3} | sort -n * * $ echo one two three four | awk { print $1, $2, $3 }‘ $ echo one two three four | awk { OFS = ...; print $1, $2, $3 }‘ $ echo one two three four | awk { OFS = \n; print $1, $2, $3 }‘ $ echo one two three four | awk { OFS = \n; print $0 }‘ 改变输出字段分隔符而没有指定任何字段,不会改变$0 $ echo one two three four | awk { OFS = \n; $1 = $1; print $0 } cat studentstom18malemary17femalebob17male 利用awk将students的内容转换为以下格式:tom:18:malemary:17:femalebob:17:male if (条件) 语句1else 语句2 for (表达式1; 条件; 表达式2) 语句 表达式1while (条件) { 语句 表达式2} break 从while或for循环中退出 continue 跳到下次循环的开始 next 读入下一行并转到awk程序起始处重新执行 exit 立即转至END模式 $ cat doublesNF0{if($1==lastword) printf “%s:%d\t%s\n”, FILENAME, FNR, $1for(i=1;iNF;i++) if($i==$(i+1)) printf “%s:%d\t%s\n”, FILENAME, FNR, $ilastword=$NF} $ awk -f doubles file1 file2 file3 例:利用awk数组实现逆序打印输出 $ cat reverse{line[NR] = $0}END{for(i=NR; i0; i--) print line[i]}$ cat -n .profile | awk -f reverse 说明 awk的数组也不必事先声明 sin(x) cos(x) log(x) exp(x) int(x) length(x) index(str1,str2) substr(str,m,n) getline() 例 awk BEGIN{print cos(60*3.1415926/180)} n = split(s, arr, sep) 分割字符串s,并把分割的字段保存在数组arr[1]至arr[n]中,若未指定分隔符sep则根据FS分割。 sed -n $p /etc/passwd | awk {split($0,a,:);print a[1],a[3]} echo 04/15/09 | awk BEGIN{OFS=-}{split($0,date,/);print date[2],date[1],20date[3]} pwd | awk {n=split($0,path,/);print path[n]} 思考:如何用awk实现命令dirname? $ cat gcd.awk{g=gcd($1,$2);print gcd($1, $2) =,g}function gcd(x,y,r){ x=int(x) y=int(y) print x,y r=x%y return (r==0)?y:gcd(y,r)} $ echo 25770 30972 | awk -f gcd.awk 分别汇总订货清单中每个客户的总定货数 $ cat listSusie 400John 100Mary 200Mary 300John 100Susie 100Mary 100John 200Mary 600Susie 500 awk {sum[$1] += $2}END {for(name in sum)print name, sum[name]} orderlist awk中可用字符串作为下标 上述for语句中的下标不一定按序产生,可对其排序从而将具有最大值的人名列在最上面 awk … |
您可能关注的文档
最近下载
- 2025年广东省粤科金融集团有限公司人员招聘笔试模拟试题及答案解析.docx VIP
- TP4057单节锂电充电芯片.pdf VIP
- 第十課 仮面の思想 日语综合教程(第六册)幻灯片课件.ppt VIP
- 中职《机械制图》 王幼龙 电子教案.docx VIP
- 2025年广东省粤科金融集团有限公司校园招聘笔试备考试题及答案解析.docx VIP
- 2023年中建EPC项目商务策划管理要点105页.pptx VIP
- 初中语法中考习题含答案——被动语态习题.docx VIP
- 2025年广东省粤科金融集团有限公司招聘笔试备考试题及答案解析.docx VIP
- 《恶性肿瘤运动康复指南》-公示稿.pdf
- 日语综合教程册十课仮面の思想.ppt VIP
文档评论(0)