awk 一行命令:提取和过滤任意文本列
用 awk '{print $n}' 配合 -F 和条件表达式,在 Linux 上一条命令完成取列和筛选。
执行 awk '{print $2, $5}' 文件(逗号分隔数据加 -F,)即可打印指定字段,$3>10 之类的条件可筛选行。
01命令
命令
$ df -h | awk 'NR>1 {print $6, $5}' && ps aux | awk '$3>10 {print $11}'02作用说明
awk 把每行按空白切分为 $1 到 $NF 的字段,打印第二列就是 {print $2},完全不需要正则。-F 用来更换分隔符(CSV、/etc/passwd 的冒号),花括号前的条件相当于行过滤器,NR>1 跳过表头,$NF 永远表示最后一列。它把取列、grep 过滤和格式化合并在一个进程里,所以一行 awk 往往能顶掉三个命令的管道。
03风险
!注意: 默认切分会把连续空白当作一个分隔符;若单个空格也有意义,请用 -F ' ' 显式指定正则。
04撤销
✓无需撤销——该命令不会改变持久状态。
05来源
- AWK — ArchWiki依据: Community examples of field extraction one-liners with print $n and conditions
- awk(1P) — POSIX manual page依据: Documents field variables $1..$NF, pattern-action pairs and the -F field separator
最后验证: 2026-09-17 · 分类: 文件与文件夹