awk 命令语法
awk [options] Pattern{Action} file
df | head -5 |awk '{print $1, $5}'
此例子中没有使用到 options 和 Pattern, 表示输出第一列跟第五列, 其中$1 表示第一列, $0 表示正行, $NF 表示 最后一列. (注: $NF 跟 NF 不同, NF表示本行一共有多少列)
BEGIN, END: 处理数据前和后进行的操作
options
-
-F 指定分隔符()
-
-v 指定变量
OFS 输出分隔符(默认分隔符为空格, 若两个变量之间没有逗号, 将不使用分隔符, 输出的内容连在一起)
FS 输入分隔符 (跟直接-F效果相同)
Pattern
-
空模式
-
BEGIN: 开始前的操作
-
END: 结束后的操作
-
关系运算模式
运算符 含义 示例 < 小于 NF < 10 <= 小于等于 > 大于 >= 大于等于 == 等于 != 不等于 ~ 与对应的正则匹配 x ~ /正则/ !~ 与对应的正则不匹配 x !~ /正则/
变量
- FS: 输入分隔符, 默认空白字符
- OFS: 输出分隔符, 默认空白字符
- RS: 输入换行符
- ORS: 输出换行符
- NF: 当前行分割成多少列
- NR: 行号
- FNR: 当处理多个文件时, 各个文件各自记录行号
- FILENAME: 当前文件名
- ARGC: 命令行参数个数
- ARGV: 数组, 保存命令行给定的各参数
- 自定义变量
- -v指定
- 内部直接定义
printf 格式化输出
使用 printf 命令代替 print 进行格式化输出