awkC教程网cppcoursecom.pptVIP

  1. 1、本文档共13页,可阅读全部内容。
  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文档。上传文档
查看更多
awk 第九章 * 本章目标 什么是awk awk简单用法 awk脚本语法 awk执行过程 * awk 介绍 awk 是一种用于处理数据和生成报告的编程语言 awk 可以在命令行中进行一些简单的操作,也可以被写成脚本来处理较大的应用问题 awk 与 grep、sed 结合使用,将使 shell 编程更加容易 Linux 下使用的 awk 是 gawk awk 是什么 awk 逐行扫描输入 ( 可以是文件或管道等 ),按给定的模式查找出匹配的行,然后对这些行执行 awk 命令指定的操作。 awk 如何工作 与 sed 一样,awk 不会修改输入文件的内容。 可以使用重定向将 awk 的输出保存到文件中。 * awk简单用法 * 用法示例 awk [options] sed_script files 选项 -F 指定输入记录字段的分隔符,默认使用环境变量IFS的值 -f 从指定文件读取awk_script -v 为awk设定变量 awk -F: { print $1 } /etc/passwd awk -F: { print $1, $3 } /etc/passwd awk -F: { print $1 | $3 } /etc/passwd awk -F: /root/{ print $1 | $3 } /etc/passwd awk -F: /^root/ /etc/passwd awk_script语法 awk BEGIN {actions} /pattern1/{actions} ...... /patternN/{actions} END {actions} input_file awk 命令的一般形式: 其中 BEGIN {actions} 和 END {actions} 是可选的 注意 BEGIN 和 END都是 大写字母。 * awk_script 可以由一条或多条 awk_cmd 组成,每条 awk_cmd 各占一行。 awk_cmd 中的 /pattern/ 和 {actions} 可以省略,但不能同时省略;/pattern/ 省略时表示对所有的输入行执行指定的 actions;{actions} 省略时表示打印整行。 每个 awk_cmd 由两部分组成:/pattern/{actions} awk 的执行过程 ⑦ 如果输入是文件列表,awk 将按顺序处理列表中的每个文件。 ① 如果存在 BEGIN ,awk 首先执行它指定的 actions ② awk 从输入中读取一行,称为一条输入记录 ③ awk 将读入的记录分割成数个字段,并将第一个字段放入变量 $1 中,第二个放入变量 $2 中,以此类推;$0 表示整条记录; 字段分隔符可以通过选项 -F 指定,否则使用缺省的分隔符。 ④ 把当前输入记录依次与每一个 awk_cmd 中 pattern 比较: 如果相匹配,就执行对应的 actions; 如果不匹配,就跳过对应的 actions,直到完成所有的 awk_cmd ⑤ 当一条输入记录处理完毕后,awk 读取输入的下一行,重复上 面的处理过程,直到所有输入全部处理完毕。 ⑥ awk 处理完所有的输入后,若存在 END,执行相应的 actions * awk 举例 ifconfig | awk /inet addr/{ print $2 } | awk -F: { print $2 } ifconfig | awk /inet addr/{ print $2 } | awk -F: BEGIN { print begin...} { print $2 } END { print end...} * 模式匹配 ① 使用正则表达式:/rexp/,如 /^A/、/A[0-9]*/ awk 中正则表达式中常用到的元字符有: ^ 只匹配行首 ( 可以看成是行首的标志 ) $ 只匹配行尾 ( 可以看成是行尾的标志 ) * 一个单字符后紧跟 *,匹配 0个或多个此字符 [ ] 匹配 [] 内的任意一个字符 ( [^] 反向匹配 ) \ 用来屏蔽一个元字符的特殊含义 . 匹配任意单个字符 str1|str2 匹配 str1 或 str2 + 匹配一个或多个前一字符 ? 匹配零个或一个前一字符 ( ) 字符组 * 模式匹配 ② 使用布尔 ( 比较 ) 表达式,表达式的值为真时执行相应的操作 (actions) 表达式中可以使用变量 ( 如字段变量 $1,$2 等 ) 和 /rexp/ 表达式中的运算符有 关系运算符: = = == != 匹配运算符: ~ !~ x

文档评论(0)

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

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

1亿VIP精品文档

相关文档