awk 的 8 个冷门技巧,用过的人都说好

在 Linux 日常运维和数据处理工作中,awk 是一把“瑞士军刀”。它几乎无所不能,却常常被低估。大多数人只会用它做简单的分隔符处理,实际上 awk 还有很多隐藏的妙用。今天就分享 8 个冷门但极其实用的技巧,用过的人都说好。

1. 按列求和,一行搞定

想快速统计一列数字的和?
`awk ‘{sum+=$1} END {print sum}’ file.txt`
只需一条命令,就能把第一列所有数字相加。适合快速统计访问量、磁盘使用量等。

2. 打印指定列,比 cut 更灵活

`awk ‘{print $2, $5}’ file.txt`
可以一次输出第二列和第五列,比 cut 更直观。如果加上格式化控制,还能实现对齐输出,非常适合分析日志时只关注部分字段。

3. 条件筛选,比 grep 更强大

`awk ‘$3 > 100 {print $1, $3}’ file.txt`
这条命令表示:只打印第三列大于 100 的行。相比 grep 只能按字符串匹配,awk 可以直接做数值比较。

4. 按条件计数,秒变统计工具

`awk ‘$2==”ERROR” {count++} END {print count}’ logfile`
这行命令能统计日志中第二列为 ERROR 的行数。相比 wc -l 的全量统计,这种方式更精准,能快速定位错误数量。

5. 格式化输出,替代 printf

`awk ‘{printf “%-10s %-5s\n”, $1, $2}’ file.txt`
可以指定列宽和对齐方式,把输出格式化成表格。处理 CSV 文件或对齐输出结果时非常好用。

6. 内置函数 substr 截取字符串

`awk ‘{print substr($1,1,5)}’ file.txt`
直接截取第一列前五个字符。比如处理时间戳时,可以一键提取日期部分,而不需要额外写脚本。

7. 内置函数 length 统计字段长度

`awk ‘{print $1, length($1)}’ file.txt`
输出第一列以及它的长度。在排查异常数据时(比如某列字符过长),用这个命令能立刻发现问题。

8. 多分隔符处理,灵活拆分复杂文本

`awk -F ‘[,;:]’ ‘{print $1, $2}’ file.txt`
通过正则设置多个分隔符,同时支持逗号、分号、冒号。遇到格式不统一的数据文件时,这个技巧特别省心。

结语

awk 并不是一门“老掉牙”的工具,它的灵活和强大,足以胜任日常大多数文本处理任务。从快速统计到复杂筛选,从字符串处理到表格格式化,这 8 个冷门技巧能大幅提升效率。下次再遇到数据处理问题,不妨先试试 awk,说不定能让你少写几十行脚本。

📖 相关阅读

👉 了解赛凡智云企业私有云存储 | 申请免费试用

📖 相关阅读

👉 访问赛凡智云官网 | 立即试用


🏢 赛凡智云 — 企业私有云存储专家

安全可控 · 高效协同 · 一键部署 · AI就绪

1000+企业客户
10万+终端用户
PB级数据托管
99.99%数据可靠性
🔒

数据安全可控

私有化部署,数据不出企业
AES-256加密 + 等保三级

👥

精细权限管控

部门/角色/文件夹多级权限
操作审计全程追溯

📱

全终端覆盖

PC/手机/平板/Web
随时随地安全访问

极速传输

大文件秒传,断点续传
局域网传输速度拉满

📄

在线协同编辑

Office/WPS在线编辑
多人协作实时同步

🤖

AI数据底座

统一数据汇聚与管理
为企业AI应用夯实基础

覆盖多个行业,提供专属解决方案

🏛️ 政府机关 🏦 金融行业 🏥 医疗卫生 🎓 教育科研 🏭 智能制造 ⚖️ 法律行业 🏗️ 建筑工程 🎬 影视传媒

📦 免费试用赛凡智云企业私有云

一站式部署,数据安全可控,大文件极速传输
已服务 1000+ 企业客户,覆盖金融、医疗、教育、制造等行业

留下评论

您的邮箱地址不会被公开。 必填项已用 * 标注

本站是 赛凡智云 官方博客 —— 企业 Agent 安全文件访问中枢,私有云盘 + 私有化 AI,数据不出域。 赛凡智云官网解决方案私有化 AI 数据底座权限继承 RAG申请试用