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

shell脚本总结14:awk命令的使用方法

这里写自定义目录标题

  • 1. 基本语法
  • 2.示例

awk 是 Shell 中用于文本分析和数据处理的强大工具,兼具脚本语言的灵活性。它特别适合处理结构化数据(如日志、CSV 文件)。

1. 基本语法

awk 'pattern {action}' [输入文件]
**pattern**:匹配条件(如 /error/ 或 NR > 1),可选。
**action**:对匹配行执行的操作(如 print、计算),需用 {} 包裹。

运行流程:自动逐行读取输入文件(或管道输入)。若行满足 pattern,则执行 action。重复直到文件结束。

2.示例

awk -F ',' '{print $1 "," $5}' data.csv  
---结果如下
id,salary
101,4500
102,8000
103,6800awk -F ',' 'NR>1 {print $1 "," $5}' data.csv
---结果如下
101,4500
102,8000
103,6800# 提取年龄大于 30 的记录
awk -F ',' '$3 > 30 {print $1 "," $3}' data.csv
---结果如下
id,age
102,32
# 添加列标题
awk -F ',' 'BEGIN {print "ID,Age"} NR>1 {print $1 "," $3}' data.csv
---结果如下
ID,Age
101,28
102,32
103,25
# 计算年龄平均值
awk -F ',' 'NR>1 {sum+=$3; cnt++} END {print "Average age:", sum/cnt}' data.csv
---结果如下
Average age: 28.3333
# 统计文件的行数并计算第一列总和
awk -F ',' 'BEGIN {sum=0; count=0} NR>1 {sum+=$3; count++} END {print "Avg:", sum/count}' data.csv
---结果如下
Avg: 28.3333
http://www.xdnf.cn/news/873793.html

相关文章:

  • 【力扣链表篇】203.移除链表元素
  • DIC技术助力金属管材全场应变测量:高效解决方案
  • 线程的生命周期与数量设置
  • 鸿蒙Navigation路由导航-基本使用介绍
  • SwiftUI 数据绑定与视图更新(@State、@ObservedObject、@EnvironmentObject)
  • 区块链架构深度解析:从 Genesis Block 到 Layer 2
  • 机器学习的数学基础:假设检验
  • 题海拾贝:P2347 [NOIP 1996 提高组] 砝码称重
  • 备战2025年全国青少年信息素养大赛-图形化编程挑战赛—省赛—每日一练—绘制立体图形
  • http协议,get,post两种请求方式
  • ArcGIS Pro 3.4 二次开发 - 共享
  • yoloe优化:可支持点提示进行检测分割
  • React 性能监控与错误上报
  • Dockerfile基础
  • SpringCloudAlibaba微服务架构
  • AI在网络安全领域的应用现状和实践
  • 代码训练LeetCode(21)跳跃游戏2
  • vivo y300pro 无法连接adb
  • 【算法篇】逐步理解动态规划模型4(子数组问题)
  • 【BUG解决】关于BigDecimal与0的比较问题
  • linux_centos7.x的ifconfig命令显示内容详解
  • Python 入门到进阶全指南:从语言特性到实战项目
  • rk3588 上运行smolvlm-realtime-webcam,将视频转为文字描述
  • 【映射】2024-睿抗-AcWing 5834. 谁进线下了?
  • J-Link 烧录SPI Flash
  • idea相关功能
  • [Java 基础]面向对象-封装
  • 【AI论文】VideoReasonBench:多模态大语言模型(MLLMs)能否执行以视觉为中心的复杂视频推理?
  • python基础day04
  • 算法竞赛推荐书单