当前位置: 首页 > news >正文

Linux awk 数据分析、字段截取实战

一、awk 简介

awk 是 Linux文本三剑客之一,擅长按列截取、统计计算、格式化输出、日志数据分析,默认以空格 / 制表符分割字段,处理结构化日志、表格类文本效率极高。

核心特点

  1. 按行读取文本,逐行拆分字段处理
  2. 默认字段分隔符空格,可自定义分隔符
  3. 支持变量、判断、循环、数值运算
  4. 常用于截取 IP、端口、访问量、服务统计

基础语法

bash

运行

awk [选项] '匹配规则{执行动作}' 文件名

二、内置变量(必记)

  • $0:整行全部内容
  • $1:第 1 列字段
  • $2:第 2 列字段,依次类推
  • NF:当前行总字段数
  • NR:当前行号
  • FS:输入字段分隔符

三、常用基础参数

  • -F:指定字段分隔符
  • -v:自定义外部变量

四、基础字段截取实战

1. 截取单列、多列

bash

运行

# 只输出第一列 awk '{print $1}' test.txt # 输出第1列、第3列 awk '{print $1,$3}' test.txt # 输出整行内容 awk '{print $0}' test.txt

2. 指定分隔符截取

文件以冒号、逗号、斜杠分割时,用-F指定分隔符

bash

运行

# 以冒号分割,取第一列 awk -F: '{print $1}' /etc/passwd # 以逗号分割截取字段 awk -F, '{print $2}' data.csv

3. 打印行号、字段总数

bash

运行

# 显示行号+第一列 awk '{print NR,$1}' test.txt # 打印每行总列数 awk '{print NF}' test.txt # 打印最后一列 awk '{print $NF}' test.txt

五、条件匹配筛选

1. 匹配包含指定字符串的行

bash

运行

# 匹配包含error的行,输出整行 awk '/error/{print $0}' app.log # 匹配包含root的行,输出第一列 awk '/root/{print $1}' /etc/passwd

2. 数值条件判断

bash

运行

# 第二列数值大于100才输出 awk '$2>100{print $1,$2}' num.txt # 等于、小于判断 awk '$3==8080{print $0}' port.log

3. 区间行筛选

bash

运行

# 只输出5到10行内容 awk 'NR>=5 && NR<=10{print $0}' test.txt

六、格式化输出与拼接

自定义输出格式,拼接符号、文字

bash

运行

# 拼接字段与文字 awk '{print "IP:"$1,"状态:"$2}' net.log # 固定分隔符输出 awk '{print $1"|"$3"|"$5}' info.txt

七、BEGIN、END 预处理与收尾

  • BEGIN{}:读取文本之前执行一次
  • END{}:读取文本全部结束后执行一次

bash

运行

# 开头打印表头,结尾统计总行数 awk 'BEGIN{print "用户名UID"}{print $1,$3}END{print "总计行数:"NR}' /etc/passwd

八、简单统计求和

bash

运行

# 统计第二列所有数值总和 awk '{sum+=$2}END{print "总和="sum}' score.txt # 统计匹配行数 awk '/200/{count++}END{print "成功请求数:"count}' access.log

九、生产高频实战案例

1. Nginx 日志截取访问 IP

bash

运行

awk '{print $1}' access.log

2. 筛选指定端口连接

bash

运行

netstat -ant | awk '$4~/8080/{print $0}'

3. 过滤空行与注释行

bash

运行

awk '!/^#/ && !/^$/{print $0}' nginx.conf

4. 统计在线客户端数量

bash

运行

ss -tn | awk 'NR>1{ip[$5]++}END{for(i in ip)print i,ip[i]}'

5. 多分隔符混合截取

bash

运行

# 同时识别空格、冒号、斜杠作为分隔 awk -F'[: /]' '{print $4}' url.log

十、三剑客场景区分速记

  • grep:单纯筛选匹配行
  • sed:批量修改、删除、替换文本
  • awk:列截取、统计、计算、结构化数据分析

十一、极简命令总结

  1. 取列:awk '{print $列数}'
  2. 改分隔符:awk -F分隔符
  3. 条件过滤:awk '/关键词/{print}'
  4. 数值统计:sum+=$列
  5. 头尾处理:BEGIN{}END{}
http://www.jsqmd.com/news/867781/

相关文章:

  • Oracle大表更新优化三妙招
  • AI辅助编程:发展现状、效率评估与未来展望
  • 视频硬字幕提取神器:3分钟将任何视频字幕转为可编辑SRT文件
  • 2025-2026年国际十大物流公司排行榜推荐:十大评测海运拼箱降成本市场份额专业注意事项 - 品牌推荐
  • 2026年当前,商业广场如何选择靠谱的扫地车服务商? - 2026年企业推荐榜
  • Linux】2026 年 13 款最强视频播放器(含安装命令 + 优缺点)
  • NLP之BERT预训练模型详解
  • SQL 最常用技能详解与实战示例
  • API调用成本失控?从prompt设计到流式响应,7类高费场景避坑清单,立即止损
  • Java 程序员第 27 阶段:多模型动态路由,灵活切换公有云与本地大模型
  • 腾讯 Marvis 马维斯完整使用教程 2026 最新版
  • 2026年5月更新:武汉元泉世纪健身管理有限公司——武汉瑜伽培训行业的领航者与性价比之选 - 2026年企业推荐榜
  • ElevenLabs江苏话语音适配指南(方言TTS工程化白皮书):覆盖苏州/南京/南通3大方言片,含ASR对齐误差率↓42.7%实测数据
  • 福贡县黄金回收店铺哪家好 靠谱门店推荐及联系方式 - 莘州文化
  • 大中小型企业数据层配置规模分析与选型指南
  • ChatGPT FAQ生成不再“假大空”:引入领域知识图谱+用户会话埋点的增强生成框架(已获专利受理号CN2024XXXXXX)
  • hls::stream作为高层次设计中最总要的建模
  • 2026年5月北京办公室装饰装修公司推荐:TOP5排行办公高效评测专业价格注意事项 - 品牌推荐
  • 大中小型企业数据配置年度成本估算分析
  • 如何用3个微小改动让React组件从“能用”升级为“爱用”?——Lovable前端落地实录
  • 在 LangGraph 里做动态路由:意图分类+置信度阈值+回退链路
  • 【央行金融科技白皮书深度解码】:AI Agent在跨境支付、信贷审批、监管报送三大场景的9项强制性技术基线
  • 红河县黄金回收店铺哪家好 靠谱门店推荐及联系方式 - 莘州文化
  • SQL 语句:从产生、发展到内容全景
  • 2026年5月新消息:洛阳地区工业级EDTA采购,为何洛阳崟生化工有限公司是可靠供应商? - 2026年企业推荐榜
  • 河口瑶族自治县黄金回收白银铂金店铺哪家好 门店推荐 - 莘州文化
  • 别再死磕传统SEO!2026年AI搜索流量爆发,头部GEO公司推荐与转型指南 - 商业科技观察
  • NotebookLM移动端响应延迟高达2.7秒?揭秘GPU加速未启用背后的架构真相,3步强制优化
  • 小龙虾 AI 太香了!10 分钟部署 OpenClaw 数字员工
  • 红塔区黄金回收白银回收铂金回收店铺哪家好 靠谱门店推荐 - 莘州文化