netos05-正则表达式与文本处理.pptVIP

  1. 1、本文档共75页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 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 students tom 18 male mary 17 female bob 17 male 利用awk将students的内容转换为以下格式: tom:18:male mary:17:female bob:17:male if (条件) 语句1 else 语句2 for (表达式1; 条件; 表达式2) 语句 表达式1 while (条件) { 语句 表达式2 } break 从while或for循环中退出 continue 跳到下次循环的开始 next 读入下一行并转到awk程序起始处重新执行 exit 立即转至END模式 $ cat doubles NF0{ if($1==lastword) printf “%s:%d\t%s\n”, FILENAME, FNR, $1 for(i=1;iNF;i++) if($i==$(i+1)) printf “%s:%d\t%s\n”, FILENAME, FNR, $i lastword=$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 list Susie 400 John 100 Mary 200 Mary 300 John 100 Susie 100 Mary 100 John 200 Mary 600 Susie 500 awk {sum[$1] += $2} END {for(name in sum) print name, sum[name]} orderlist awk中可用字符串作为下标 上述for语句中的下标不一定按序产生,可对其排序从而将具有最大值的人名列在最上面 awk … |

文档评论(0)

好文精选 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档