正文
--dump-variables[=file] 选项
该选项会输出排好序的全局变量列表和它们最终的值到文件中,默认的文件是 awkvars.out。
--help 选项
打印帮助信息。
--lint[=fatal] 选项
该选项允许检查程序的不兼容性或者模棱两可的代码,当提供参数 fatal的时候,它会对待Warning消息作为Error。
--posix 选项
该选项开启严格的POSIX兼容。
--profile[=file]选项
该选项会输出一份格式化之后的程序到文件中,默认文件是 awkprof.out。
--traditional 选项
该选项会禁止所有的gawk规范的扩展。
--version 选项
输出版本号
本部分会讲述一些有用的AWK命令和它们的使用示例,所有的例子都是以下面的文本文件 marks.txt 为基础的
打印某列或者字段
AWK可以只打印输入字段中的某些列。
在文件marks.txt中,第三列包含了科目名,第四列则是得分,上面的例子中,我们只打印出了这两列,$3 和 $4代表了输入记录中的第三和第四个字段。
打印所有的行
默认情况下,AWK会打印出所有匹配模式的行
上述命令会判断每一行中是否包含a,如果包含则打印该行,如果BODY部分缺失则默认会执行打印,因此,上述命令和下面这个是等价的
打印匹配模式的列
当模式匹配成功时,默认情况下AWK会打印该行,但是也可以让它只打印指定的字段。例如,下面的例子中,只会打印出匹配模式的第三和第四个字段。
任意顺序打印列
统计匹配模式的行数
打印超过18个字符的行
AWK提供了很多内置的变量,它们在开发AWK脚本的过程中起着非常重要的角色。
标准AWK变量
ARGC 命令行参数个数
命令行中提供的参数个数
ARGV 命令行参数数组
存储命令行参数的数组,索引范围从0 - ARGC - 1。
CONVFMT 数字的约定格式
代表了数字的约定格式,默认值是%.6g
ENVIRON 环境变量
环境变量的关联数组
FILENAME 当前文件名
FS 输入字段的分隔符
代表了输入字段的分隔符,默认值为空格,可以通过-F选项在命令行选项中修改它。
NF 字段数目
代表了当前行中的字段数目,例如下面例子打印出了包含大于两个字段的行
NR 行号
FNR 行号(相对当前文件)
与NR相似,不过在处理多文件时更有用,获取的行号相对于当前文件。
OFMT 输出格式数字
默认值为%.6g
OFS 输出字段分隔符
输出字段分隔符,默认为空格
ORS 输出行分隔符
默认值为换行符
RLENGTH
代表了 match 函数匹配的字符串长度。
RS 输入记录分隔符
RSTART
match函数匹配的第一次出现位置
SUBSEP 数组子脚本的分隔符
数组子脚本的分隔符,默认为\034
$ 0 代表了当前行
代表了当前行
$n