awk

按模式扫描和处理文本,支持字段分割、条件判断和格式化输出

语法

awk [options] 'pattern {action}' file

参数

参数说明示例级别
-F 指定字段分隔符 常用
-v 定义外部变量 常用
-f 从文件读取 awk 脚本 常用
NR 内置变量:当前行号 常用
NF 内置变量:当前行字段数 常用

示例

打印每行第一个字段

awk '{print $1}' file.txt

以冒号分隔,打印用户名和 UID

awk -F: '{print $1, $3}' /etc/passwd

打印 UID 大于 1000 的用户

awk '$3 > 1000 {print $1, $3}' /etc/passwd

计算第一列数值总和

awk '{sum += $1} END {print sum}' numbers.txt

找出磁盘使用率超过 80% 的分区

df -h | awk 'NR>1 && $5+0 > 80 {print $6, $5}'

处理 CSV 文件,打印行号和第二列

awk -F, '{print NR": "$2}' data.csv

技巧

相关命令