Linux每日一命令 - awk.pdf

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

Linux每⽇⼀命令 - awk [![linux命令⼤全](/attachments/image/20 1704 11/ 149 1895545 132877 .gif linux命令⼤全 ] (http://j slite .oschina.io/linux-command/ [Github Web版](https://j aywcjlove .github .io/linux- command/ | [开源中国Web版](http://j slite .oschina.io/linux-command | [Alfred 版本下载] (https://github .com/j aywcjlove/linux-command/releases | [Android版本实现] (https://github .com/Ernest-su/LinuxCmd .git ⽂本和数据进⾏处理的编程语⾔ ## 补充说 明 **awk** ⼀种编程语⾔,⽤于在linux/unix下对⽂本和数据进⾏处理。数据可以来 ⾃标准输⼊(stdin 、⼀个或多个⽂件,或其它命令的输出。它⽀持⽤户⾃定义函数和 动态正则表达式等先进功能, linux/unix下的⼀个强⼤编程⼯具。它在命令⾏中使 ⽤,但更多 作为脚本来使⽤。awk有很多内建的功能,⽐如数组、函数等,这 它 和C语⾔的相同之处,灵活性 awk最⼤的优势。 ## awk命令格式和选项 **语法形式 ** ``` awk [options] script var=value file(s awk [options] -f scriptfile var=value file(s ``` **常⽤命令选项** * **-F fs ** fs指定输⼊分隔符,fs可以 字符串或正则表达式, 如-F: * **-v var=value ** 赋值⼀个⽤户定义变量,将外部变量传递给awk * **-f scripfile ** 从脚本⽂件中读取awk命令 * **-m[fr] val ** 对val值设置内在限制,-mf选 项限制分配给val的最⼤块数⽬;-mr选项限制记录的最⼤数⽬。这两个功能 Bell实验 室版awk 的扩展功能,在标准awk 中不适⽤。 ## awk模式和操作 awk脚本 由模式和 操作组成的。 ### 模式 模式可以 以下任意⼀个: * /正则表达式/ :使⽤通配符的扩 展集。 * 关系表达式:使⽤运算符进⾏操作,可以 字符串或数字的⽐较测试。 * 模 式匹配表达式:⽤运算符`~` (匹配)和`~ !` (不匹配)。 * BEGIN语句块、pattern语 句块、END语句块:参见awk 的⼯作原理 ### 操作 操作由⼀个或多个命令、函数、表 达式组成,之间由换⾏符或分号隔开,并位于⼤括号内,主要部分 : * 变量或数组 赋值 * 输出命令 * 内置函数 * 控制流语句 ## awk脚本基本结构 ``` awk BEGIN{ print start } pattern{ commands } END{ print end } file ``` ⼀个awk脚本通常由:BEGIN语 句块、能够使⽤模式匹配的通⽤语句块、END语句块3部分组成,这三个部分 可选 的。任意⼀个部分都可以不出现在脚本中,脚本通常 被 **单引号** 或 **双引号** 中,例如: ``` awk BEGIN{ i=0 } { i++ } END{ print i } filename awk BEGIN{ i=0 } { i++ } END{ print i } filename ``` ### awk 的⼯作原理 ``` awk BEGIN{ commands } pattern{ commands } END{ commands } ``` * 第⼀步:执⾏`BEGIN{ commands }`语句 块中的语句; * 第⼆步:从⽂件或标准输⼊(stdin 读取⼀⾏,然后执⾏`pattern{ commands }`语句块,它逐⾏扫描⽂件,从第⼀⾏到最后⼀⾏重复这个过程,直到⽂ 件全部被读取完毕。 * 第三步:当读⾄输⼊流末尾时,执⾏`END{ commands }`语句 块。 **BEGIN语句块** 在awk开始从输⼊流中读取⾏ **之前** 被执⾏,这 ⼀个可 选的语句块,⽐如变量初始化、打印输出表格的表头等语句通常可以写在BEGIN语句 块中。 **END语句块** 在awk从输⼊流中读取完

您可能关注的文档

文档评论(0)

ipbohn97 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档