| 变量 | 意义 | 默认值 |
|---|---|---|
| ARGC | 命令行参数的个数 | - |
| ARGV | 命令行参数数组 | - |
| FILENAME | 当前输入文件名 | - |
| FNR | 当前输入文件的记录个数 | - |
| FS | 控制着输入行的字段分割符 | “ “ |
| NF | 当前记录的字段个数 | - |
| NR | 到目前为止读的记录数量 | - |
| OFMT | 数值的输出格式 | “%.6g” |
| OFS | 输出字段分割符 | “ “ |
| ORS | 输出的记录的分割符 | “\n” |
| RLENGTH | 被函数 match 匹配的字符串的长度 | - |
| RS | 控制着输入行的记录分割符 | “\n” |
| RSTART | 被函数 match 匹配的字符串的开始 | |
| SUBSEP | 下标分割符 | “\034” |
| $0 | 当前行 | |
| $1 .. $n | 列号 |
awk在读取输入之前先执行BEGIN关联的语句,反之处理完所有输入的记录之后执行END关联的语句。
可以使用八进制替代单引号或双引号。
在awk运行规则中,
pattern或action可以省略其一,但不能同时省略。如果pattern省略则在输入的每一行上执行action;如果action省略则默认的action是打印行。多个rule可以使用;隔开。@load关键字可以用于加载awk外部扩展(系统库文件),这样就可以链接已编译的代码,或者执行awk不支持的功能。记录分割符用于将多个记录分开,默认的记录分隔符是换行符。若要指定新的记录分隔符可以给内建变量
RS赋值,或通过参数-F指定。
1 | awk 'length($0) > 80' data # 打印长度大于80的行 |