awk命令详解-转整理

awk命令详解-转整理

ID:12306380

大小:40.00 KB

页数:9页

时间:2018-07-16

awk命令详解-转整理_第1页
awk命令详解-转整理_第2页
awk命令详解-转整理_第3页
awk命令详解-转整理_第4页
awk命令详解-转整理_第5页
资源描述:

《awk命令详解-转整理》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、awk命令详解(转整理)一、前言awk有3个不同版本:awk、nawk和gawk,未作特别说明,一般指gawk。awk语言的最基本功能是在文件或字符串中基于指定规则来分解抽取信息,也可以基于指定的规则来输出数据。完整的awk脚本通常用来格式化文本文件中的信息。二、基本语法awk[opion]'awk_script'input_file1[input_file2...]awk的常用选项option有:①-Ffs:使用fs作为输入记录的字段分隔符,如果省略该选项,awk使用环境变量IFS的值②-ffilename:从文件filename中读取awk_script③-vvar=value

2、:为awk_script设置变量awk有三种运行方式:第一种,把awk的脚本命令直接放在命令中。第二种,把awk的所有的脚本命令放在一个脚本文件中,然后用-f选项来指定要运行的脚本命令文件。第三种,将awk_script放入脚本文件并以#!/bin/awk-f作为首行,给予该脚本可执行权限,然后在shell下通过键入该脚本的脚本名调用之。三、awk脚本awk脚本可以由一条或多条awk_cmd组成,对于多个awk_cmd,一个awk_cmd完成后,应该另起一行,以便进行隔。awk_cmd由两部分组成:awk_pattern{actions}。另外,在awk命令中直接使用awk_scr

3、ipt时,awk_script也可以被分成多行书写,但必须确保整个awk_script被单引号括起来。awk命令的一般形式:awk'BEGIN{actions}awk_pattern1{actions}............awk_patternN{actions}END{actions}'inputfile其中BEGIN{actions}和END{actions}是可选的。在awk脚本中可以使用AWK本身内置变量,如下:ARGC命令行变元个数ARGV命令行变元数组FILENAME当前输入文件名FNR当前文件中的记录号FS输入域分隔符,默认为一个空格RS输入记录分隔符NF当前记录

4、里域个数NR到目前为止记录数OFS输出域分隔符ORS输出记录分隔符awk脚本的运行过程:①如果BEGIN区块存在,awk执行它指定的actions。②awk从输入文件中读取一行,称为一条输入记录。(如果输入文件省略,将从标准输入读取)③awk将读入的记录分割成字段,将第1个字段放入变量$1中,第2个字段放入$2,以此类推。$0表示整条记录。字段分隔符使用shell环境变量IFS或由参数指定。④把当前输入记录依次与每一个awk_cmd中awk_pattern比较,看是否匹配,如果相匹配,就执行对应的actions。如果不匹配,就跳过对应的actions,直到比较完所有的awk_cmd

5、。⑤当一条输入记录比较了所有的awk_cmd后,awk读取输入的下一行,继续重复步骤③和④,这个过程一直持续,直到awk读取到文件尾。⑥当awk读完所有的输入行后,如果存在END,就执行相应的actions。1)input_file可以是多于一个文件的文件列表,awk将按顺序处理列表中的每个文件。2)一条awk_cmd的awk_pattern可以省略,省略时不对输入记录进行匹配比较就执行相应的actions。一条awk_cmd的actions也可以省略,省略时默认的动作为打印当前输入记录,即{print$0}。一条awk_cmd中的awk_pattern和actions不能同时省略

6、。3)BEGIN区块和END区块别位于awk_script的开头和结尾。awk_script中只有END区块或者只有BEGIN区块是被允许的。如果awk_script中只有BEGIN{actions},awk不会读取input_file。4)awk把输入文件的数据读入内存,然后操作内存中的输入数据副本,awk不会修改输入文件的内容。5)awk的总是输出到标准输出,如果想让awk输出到文件,可以使用重定向。3.1.awk_patternawk_pattern模式部分决定actions动作部分何时触发及触发actions。awk_pattern可以是以下几种类型:1)正则表达式用作aw

7、k_pattern:/regexp/注意,正则表达式regexp必须被/包起来awk中正则表达式匹配操作中经常用到的字符:^$.[]

8、()*//:通用的regexp元字符+:匹配其前的单个字符一次以上,是awk自有的元字符,不适用于grep或sed等?:匹配其前的单个字符1次或0次,是awk自有的元字符,不适用于grep或sed等关于正则表达式的更多内容请参《正则表达式》举例:awk'/*$0.[0-9][0-9].*/'input_file比如,行内容为$0.

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。