- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
awk简单入门
1. awk语言的最基本功能是在文件或字符串中基于指定规则来分解抽取信息,也可以基于指定的规则来输出数据。完整的awk脚本通常用来格式化文本文件中的信息。
2. 三种方式调用awk?1) awk [opion] awk_script input_file1 [input_file2 ...] awk的常用选项option有:?① -F fs : 使用fs作为输入记录的字段分隔符,如果省略该选项,awk使用环境变量IFS的值。?② -f filename : 从文件filename中读取awk_script。③ -v var=value : 为awk_script设置变量。?2) 将awk_script放入脚本文件并以 #!/bin/awk -f 作为首行,给予该脚本可执行权限,然后在shell下通过键入该脚本的脚本名调用之。?3) 将所有的awk_script插入一个单独脚本文件,然后调用: awk -f awk脚本文件 input_file(s)。
3. awk的运行过程?1) awk_script的组成:??? ① awk_script可以由一条或多条awk_cmd组成,两条awk_cmd之间一般以NEWLINE分隔。??? ② awk_cmd由两部分组成: awk_pattern { actions }???? ③ awk_script可以被分成多行书写,必须确保整个awk_script被单引号括起来。2) awk命令的一般形式: awk BEGIN { actions } awk_pattern1 { actions } ............ awk_patternN { actions } END { actions } inputfile 其中 BEGIN { actions } 和 END { actions } 是可选的。?3) awk的运行过程:???? ① 如果BEGIN 区块存在,awk执行它指定的actions。???? ② awk从输入文件中读取一行,称为一条输入记录。(如果输入文件省略,将从标准输入读取)。??? ③ awk将读入的记录分割成字段,将第1个字段放入变量$1中,第2个字段放入$2,以此类推。$0表示整条记录。字段分隔符使用shell环境变量IFS或由参数指定。???? ④ 把当前输入记录依次与每一个awk_cmd中awk_pattern比较,看是否匹配,如果相匹配,就执行对应的actions。如果不匹配,就跳过对应的actions,直到比较完所有的awk_cmd。???? ⑤ 当一条输入记录比较了所有的awk_cmd后,awk读取输入的下一行,继续重复步骤③和④,这个过程一直持续,直到awk读取到文件尾。???? ⑥ 当awk读完所有的输入行后,如果存在END,就执行相应的actions。?4) iput_file可以是多于一个文件的文件列表,awk将按顺序处理列表中的每个文件。?5) 一条awk_cmd的awk_pattern可以省略,省略时不对输入记录进行匹配比较就执行相应的actions。一条awk_cmd的actions 也可以省略,省略时默认的动作为打印当前输入记录(print $0) 。一条awk_cmd中的awk_pattern和actions不能同时省略。?6) BEGIN区块和END区块别位于awk_script的开头和结尾。awk_script中只有END区块或者只有BEGIN区块是被允许的。如果awk_script中只有BEGIN { actions } ,awk不会读取input_file。?7) awk把输入文件的数据读入内存,然后操作内存中的输入数据副本,awk不会修改输入文件的内容。?8) awk的总是输出到标准输出,如果想让awk输出到文件,可以使用重定向。
4.awk_pattern awk_pattern模式部分决定actions动作部分何时触发及触发actions。awk_pattern可以是以下几种类型:?1) 正则表达式用作awk_pattern: /regexp/???? ① awk中正则表达式匹配操作中经常用到的字符: \ ^ $ . [] | () * // 通用的regexp元字符 + : 匹配其前的单个字符一次以上,是awk自有的元字符,不适用于grep或sed等。 ? : 匹配其前的单个字符1次或0次,是awk自有的元字符,不适用于grep或sed等????? ② 举例: awk / *\$0\.[0-9][0-9].*/ input_file2) 布尔表达式用作awk_pattern,表达式成立时,触发相应的actions执行。???? ① 表达式中可以使用变量(如字
您可能关注的文档
最近下载
- 2025年浙江安防职业技术学院单招职业技能测试题库(名校卷).docx
- 2024年广州中考英语听说考试——“信息询问” 情景训练课件.pptx
- 四年级下册单元作文《热爱生命》.ppt
- 骆驼奶营养价值课件.pptx
- 统编版高中语文教材中杜甫四首诗《登高》《登岳阳楼》《蜀相》《客至》联读.docx
- 附件3-2:12千伏一二次融合环网柜(箱)及配电自动化终端(DTU)标准化设计方案(2021版).pdf VIP
- 第6课 戊戌变法 课件(共34张PPT).pptx
- 2023年上海杉达学院工程管理专业《管理学》科目期末试卷A(有答案).docx VIP
- 分包考核管理办法和考核表.pdf VIP
- 送教上门康复教案.docx
文档评论(0)