第一章 02 awk.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
这两个例子用NR(行号)来做下标,因此匹配Tom的模式的行不连续,数组下标不连续。如果用传统for来循环打印会在数组没有值的地方打印空值。通过使用特殊for循环,只打印数组中有值的内容。 解释:如果第一个域大于第二个域,就把第一个域的内容赋给max,反之把第二个域的内容赋给max,然后打印max 计算 可以在模式里执行计算。awk以浮点方式执行所有的算术运算。 复合模式 复合模式 (compound patterns) 是把模式和逻辑操作符相结合的表达式,给一个表达式从左到右求值。 复合模式 awk编程 变量 数值和串常数 数值常数可以表示成整数、浮点、科学计数等。含有空格的串要封装在双引号里。例如Hello world 用户自定义变量 用户自定义变量包括字母、数字和下划线,且不能以数字开头。在awk中变量不用声明,awk通过表达式的上下文推断变量类型,并且如果需要,还可以在不同类型的变量中相互转换。 ??name=“Nancy” Number=35 X++: x是一个数,x被初始化为0并加1 Awk扫描第一个域Tom,当匹配时,将$2和$5的值相乘,并把结果赋值给wage 内置变量 内值变量要大写,他们可以用在表达式里而且可以被重置。 内置变量 内值变量要大写,他们可以用在表达式里而且可以被重置。 BEGIN模式 BEGIN模式后面跟一个操作模块,在awk处理文件之前执行该模块。BEGIN模式主要用来设置OFS、RS、FS等内置变量的值。 在处理输入文件之前,把输出域分隔符制成跳格符,并把输出记录分隔符(ORS)设置成两个换行符。 END模式 END模式不与任何输入行相匹配,但是执行任何与END模式相关的操作。在所有行处理完毕之后再来处理END模式。 对于包含Mary的每一行,count变量值都递增1。awk 处理完毕之后,END模块打印结果。 重定向和管道 ?? 输出重定向:当把输出从awk重定向到一个linux文件时,使用shell重定向操作符。如果重定向操作符用在awk命令里面则必须将重定向文件用双引号括起来。例 重定向 输入重定向 getline 函数用来从标准输入,例如管道或者文件来读入数据,而不是从正被处理的当前文件。getline 取得输入的下一行,并更新NF、NR和FNR等内置变量的值。如果getline找到记录则返回1,达到EOF(文件结束)则返回0。如果有错误则返回-1。 输入重定向 管道 如果在一个awk程序中打开一个管道,则必须在打开另一个之前先关闭它。 在管道符号右边的命令封装在双引号里。一次只能打开一个管道。下面的例子是将names文件中的姓名按照姓作为第一关键字,名作为第二关键字来进行倒排序: 将文件中的$1 $2排序: 条件语句 if 语句 以if结构开头的语句是操作语句。在条件模式(conditional patterns)里,if是隐含的; 在一个条件操作语句中,if要显式说明,并且后面跟一个封装在括弧里的表达式。 如果跟在条件表达式后面的语句不止一条,则语句组必须放在花括号里,并且用分号或者换行符来分开。 格式: if (expression){statement;statement;…} if/else语句 if/else语句允许一个二路判断。 格式: {if(expression) { statement;statement;… } else{ statement;statement;… } } 循环 循环的作用是,如果一个条件为真,则重复执行测试表达式后的语句。 循环通常用来迭代一条记录里的域,及循环操作END模块里的一个数组的元素。 awk 有3种循环:while循环、for循环和特殊for循环。 While 循环 For 循环 数组 在awk中数组叫做关联数组(associative arrays),因为下标记可以是数也可以是串。awk中的数组不必提前声明,也不必声明大小。数组元素用0或空串来初始化,这根据上下文而定。 在数组name里的下标是一个用户自定义变量x。++显示了一个数值型的上下文。 特殊for循环 在for循环无效的情况下,即当串被用作下标或者下标不是连续的数时,用特殊for循环来读取一个关联数组。特殊for循环把下标当作一个键来找到它的相关的值。 awk awk 简介 awk 是用来操作数据和产生报表的一种编程语言。数据可能来自标准输入、一个或者多个文件或者是一个进程的输出。 awk 可以用在命令行里用于简单操作,或者可以为了较大的应用而写到程序中。 awk从第

文档评论(0)

kehan123 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档