首页/系统/Linux 运维命令速查/awk 文本处理编程(基础)
本包目录(613 条)
文件与目录76 条
文本处理77 条
网络命令82 条进程与作业69 条磁盘与文件系统51 条用户与权限44 条日志与排查40 条systemd 与服务42 条包管理34 条性能与监控48 条定时任务与计划50 条

awk 文本处理编程(基础)

面向字段的行处理语言:'模式{动作}' 结构 + $1..$NF/NR/NF 内建变量,统计分析能力远超 cut/sed。

Linux 运维命令速查系统更新于 2026-10-12
用途按行/字段抽取、过滤、计算、聚合
语法awk '模式{动作}' [文件...]
内建$0 整行 $N 第N字段 NF 字段数 NR 行号 FS/OFS 分隔符

常用示例

常用示例
awk '{print $1, $3}' data.txt
awk -F: '{print $1}' /etc/passwd      # 冒号分隔取用户名
awk 'NR>1 && $3>100' data.txt         # 过滤条件
awk 'NR==1 || /ERROR/' app.log        # 首行或匹配行
默认按空白(含连续空白折叠)分列;-F 可指定单字符/正则分隔符,输出用逗号 join 到 OFS(默认空格)。

易错点

  • 脚本里用双引号包裹会先被 shell 展开 $1;标准写法是单引号包脚本,需 shell 变量用 -v 传入
  • awk 的数字/字符串比较有自动转换规则,== 比较字符串时别期望数值语义

数据来源与参考

  • man 1 awk(gawk 手册)
  • POSIX awk 规范

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌