【5分钟上手AWK,数据处理效率翻倍】

为什么程序员都爱用AWK?
  在Linux系统管理和数据处理中,AWK是一个被严重低估的神器。它能用一行代码完成Excel表格的复杂操作,甚至能直接分析百万行日志!无需Python脚本,不用打开笨重的软件,跟着本文快速掌握它的核心用法!
在这里插入图片描述

一. 什么是AWK?
  AWK是一种文本处理编程语言,名字取自三位创始人姓氏的首字母。它擅长对结构化文本(如日志、CSV、配置文件)进行逐行扫描、切割、计算和格式化输出。
核心特点:

  • 无需编译,直接命令行运行
  • 内置字段分割、变量、循环和函数
  • 支持正则表达式匹配

二. AWK基础:一行代码搞定数据提取
场景:假设有一个文件data.txt,内容如下:

Alice 95 88
Bob 78 92
Charlie 85 90

需求:提取第一列(姓名)和第三列(分数)
命令:

awk '{print $1 " - 分数: " $3}' data.txt

输出:

Alice - 分数: 88
Bob - 分数: 92
Charlie - 分数: 90

三. 高级技巧:统计、计算、过滤一键完成
① 按条件过滤数据

找出第二列分数大于90的行

awk '$2 > 90 {print $1 " 高分!"}' data.txt

② 自动求和与统计

计算第三列的总分

awk '{sum += $3} END {print "总分:" sum}' data.txt

③ 自定义分隔符

处理CSV文件(逗号分隔)

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

四. 真实应用场景
场景1:分析Nginx日志

统计访问量前10的IP地址

awk '{print $1}' access.log | sort | uniq -c | sort -nr | head -n 10

在这里插入图片描述

场景2:快速生成报表

计算每个部门的平均工资

awk -F',' '{sum[$2] += $3; count[$2]++} 
END {for(dept in sum) print dept " 平均工资:" sum[dept]/count[dept]}' salary.csv

五. 为什么说AWK是“瑞士军刀”?

  • 轻量级:无需打开文件,直接命令行处理
  • 高性能:处理百万行数据仅需几秒
  • 灵活性:支持复杂逻辑(甚至能写小型计算器!)

动手练习
复制以下命令到终端试试吧!

  1. 显示当前目录下文件的大小(MB)
ls -l | awk '{print $9 ": " $5/1024/1024 " MB"}'
  1. 统计代码行数(排除空行)
awk 'NF {count++} END {print "有效代码行数:" count}' main.c

在这里插入图片描述

总结
  AWK的潜力远不止于此!它支持数组、内置函数、正则表达式,甚至能调用系统命令。掌握它,你将在数据分析、日志处理、报表生成等场景中游刃有余!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值