正则表达式与文本处理.ppt

  1. 1、本文档共75页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

*$sort-k2studentsstudents.sorted$sort-k1scoresscores.sorted$join-12-21students.sortedscores.sorted|awk{print$2,$1,$3}|sort-n**$echoonetwothreefour|

awk{print$1,$2,$3}‘$echoonetwothreefour|

awk{OFS=...;print$1,$2,$3}‘$echoonetwothreefour|

awk{OFS=\n;print$1,$2,$3}‘$echoonetwothreefour|

awk{OFS=\n;print$0}‘改变输出字段分隔符而没有指定任何字段,不会改变$0$echoonetwothreefour|

awk{OFS=\n;$1=$1;print$0}catstudents

tom

18

male

mary

17

female

bob

17

male利用awk将students的内容转换为以下格式:

tom:18:male

mary:17:female

bob:17:maleif(条件)

语句1

else

语句2for(表达式1;条件;表达式2)

语句表达式1

while(条件){

语句

表达式2

}break从while或for循环中退出continue跳到下次循环的开始next读入下一行并转到awk程序起始处重新执行exit立即转至END模式$catdoubles

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-fdoublesfile1file2file3例:利用awk数组实现逆序打印输出$catreverse

{line[NR]=$0}

END{for(i=NR;i0;i--)printline[i]}

$cat-n.profile|awk-freverse说明awk的数组也不必事先声明sin(x) cos(x)log(x) exp(x)int(x) length(x)index(str1,str2)substr(str,m,n)getline()例awkBEGIN{printcos(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,:);printa[1],a[3]}echo04/15/09|awkBEGIN{OFS=-}{split($0,date,/);printdate[2],date[1],20date[3]}pwd|awk{n=split($0,path,/);printpath[n]}思考:如何用awk实现命令dirname?$catgcd.awk

{g=gcd($1,$2);printgcd($1,$2)=,g}

functiongcd(x,y,r)

{

x=int(x)

y=int(y)

printx,y

r=x%y

return(r==0)?y:gcd(y,r)

}$echo2577030972|awk-fgcd.awk分别汇总订货清单中每个客户的总定货数$catlist

Susie400

John100

Mary200

Mary300

John100

Susie100

Mary100

John200

Mary600

Susie500awk{sum[$1]+=$2}

END{for(nameinsum)

printname,sum[name]}orderlistawk中可用字符串作为下标上述for语句中的下标不一定按序产生,可对其排序从而将具有最大值的人名列在最上面awk…|

您可能关注的文档

文档评论(0)

好文精选 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档