Linux 文本处理神器 awk 超详细教程|从入门到实战,一篇吃透
Linux 学习资料 https://pan.baidu.com/s/1A6qqBk2ViE_Le2cQjSowkQ?pwd7uz8一、awk 命令简介awk是 Linux/Unix 下功能极其强大的文本处理与数据格式化编程语言广泛用于文本扫描、字段提取、条件过滤、统计计算等场景。其名称取自三位创始人Alfred Aho、Peter Weinberger、Brian Kernighan姓氏首字母。核心特点逐行读取文本按模式匹配 动作执行工作内置字符串处理、算术运算、数组、循环、判断等完整语法无需编译一行命令即可完成复杂文本处理常用于日志分析、数据清洗、字段截取、报表生成awk既是命令行工具也是一门微型脚本语言是运维与开发必备神器。二、语法格式awk 支持两种常用写法命令行直接脚本、外部脚本文件执行。1. 命令行直接执行bash运行awk [选项] 脚本代码 输入文件1 [输入文件2 ...]2. 从脚本文件读取bash运行awk [选项] -f 脚本文件 输入文件1 [输入文件2 ...]结构说明脚本代码格式为模式 { 动作 }用单引号包裹模式匹配条件正则 / 数值比较等动作匹配后执行的逻辑打印、计算、赋值等不指定文件时默认从标准输入读取三、常用选项及说明表格选项说明-F fs指定字段分隔符支持字符 / 正则默认空白符-v varvalue定义变量用于 Shell 向 awk 传参-f scriptfile从文件读取 awk 脚本-m[fr] val扩展限制参数gawk 特有标准 awk 不一定支持四、示例用法示例文件data.txt内容冒号分隔plaintextAlice:Engineering:55000 Bob:Marketing:48000 Carol:Engineering:620004.1 基础字段处理打印第一列姓名bash运行awk -F: {print $1} data.txt输出plaintextAlice Bob Carol打印最后一列薪资bash运行awk -F: {print $3} data.txt重排字段并自定义输出bash运行awk -F: {print $3,$1,in,$2} data.txt输出plaintext55000 Alice in Engineering 48000 Bob in Marketing 62000 Carol in Engineering4.2 模式匹配与条件处理打印包含 Engineering 的行bash运行awk -F: /Engineering/ {print $0} data.txt # 简写 awk -F: /Engineering/ data.txt打印薪资 50000 的员工姓名bash运行awk -F: $350000 {print $1} data.txt输出plaintextAlice Carol多条件组合Engineering 且薪资 60000bash运行awk -F: $2Engineering $360000 {print $1,,$3} data.txt输出plaintextCarol 620004.3 BEGIN END 块统计必备BEGIN处理文本之前执行表头、初始化END处理文本之后执行汇总、平均值bash运行awk -F: BEGIN { print 员工薪资报告 print 姓名\t部门\t薪资 total 0 } { print $1,\t,$2,\t,$3 total $3 } END { print print 总薪资支出, total print 平均薪资, total/NR } data.txt输出plaintext 员工薪资报告 姓名 部门 薪资 Alice Engineering 55000 Bob Marketing 48000 Carol Engineering 62000 总薪资支出 165000 平均薪资 550004.4 内置变量使用NR当前行号NF当前行字段数FILENAME当前文件名显示行号bash运行awk {print NR : $0} data.txt检查字段数量是否异常bash运行awk -F: NF ! 3 {print Line NR 字段异常NF} data.txt4.5 Shell 向 awk 传递变量bash运行min_salary50000 awk -v minsal$min_salary -F: $3 minsal {print $1} data.txt4.6 管道结合系统命令bash运行# 查看 80 端口监听进程 netstat -tuln | awk /:80/ {print $0}五、注意事项引号规则awk 脚本必须用单引号包裹避免 Shell 解析$等特殊字符。字段与记录一行 一条记录默认空格 / Tab 分隔字段$0表示整行$1/$2...表示第 N 个字段模式与动作可省略只有动作处理所有行只有模式默认打印匹配行版本差异常用版本为gawk(GNU awk)功能最全部分 Unix 自带 nawk/awk语法略有差异。适用场景简单替换优先sed超复杂处理可用 Python/Perl结构化文本、字段统计awk 最简洁高效六、总结awk是 Linux 文本处理效率天花板掌握基础语法即可替代大量复杂脚本。 日常工作中字段切割 条件过滤 统计汇总awk 几乎通吃。

相关新闻

Android密码安全存储:SharedPreferences与AES加密实践

Android密码安全存储:SharedPreferences与AES加密实践

1. SharedPreferences基础与密码存储场景分析在Android应用开发中,用户登录状态的持久化是一个基础但至关重要的功能。SharedPreferences作为Android平台提供的轻量级存储方案,特别适合保存用户偏好设置和小规模数据,比如记住密码功能。与SQL…

2026/7/24 7:42:10 阅读更多 →
结对编程实践指南:提升代码质量与团队协作效率

结对编程实践指南:提升代码质量与团队协作效率

1. 结对编程的本质与价值第一次接触结对编程这个概念时,我正坐在一个开放式办公室里,看着两位资深开发人员共用一台电脑。一个人专注地敲着键盘,另一个人则时不时提出建议或指出潜在问题。这种看似"浪费人力"的工作方式&#xff0c…

2026/7/24 4:57:09 阅读更多 →
WSL2环境下高效Android开发环境搭建指南

WSL2环境下高效Android开发环境搭建指南

1. 为什么选择WSL2进行Android开发?在Windows 11环境下进行Android系统开发,传统方式通常面临两个选择:要么忍受性能低下的虚拟机方案,要么折腾双系统切换。而WSL2(Windows Subsystem for Linux 2)的出现完…

2026/7/23 6:09:07 阅读更多 →

最新新闻

深入学LangChain官方文档(二十二):Frontend 高级形态——Headless Tools、Time Travel 与 Generative UI

深入学LangChain官方文档(二十二):Frontend 高级形态——Headless Tools、Time Travel 与 Generative UI

深入学LangChain官方文档(二十二):Frontend 高级形态——Headless Tools、Time Travel 与 Generative UI 本篇对应的官方文档 Headless Tools:说明服务器工具 schema 怎样通过 interrupt 把真实执行交给客户端 implementation。Ti…

2026/7/25 1:31:07 阅读更多 →
AI生成社交媒体封面:3步搞定高点击率封面,新手5分钟上手,附12个Prompt黄金模板

AI生成社交媒体封面:3步搞定高点击率封面,新手5分钟上手,附12个Prompt黄金模板

更多请点击: https://kaifayun.com 第一章:AI生成社交媒体封面 借助现代生成式AI模型,设计师与内容创作者可快速产出高辨识度、平台适配的社交媒体封面图。主流方案依赖扩散模型(如Stable Diffusion)或专有API&#x…

2026/7/25 1:31:07 阅读更多 →
深入学LangChain官方文档(二十一):Agent 能力如何进入 UI——Tool Calling、Reasoning、Structured Output 与审批

深入学LangChain官方文档(二十一):Agent 能力如何进入 UI——Tool Calling、Reasoning、Structured Output 与审批

深入学LangChain官方文档(二十一):Agent 能力如何进入 UI——Tool Calling、Reasoning、Structured Output 与审批 本篇对应的官方文档 Tool calling:说明 useStream 怎样把工具请求、执行结果和错误组装成可渲染的 toolCalls。Reasoning tokens&#xf…

2026/7/25 1:31:07 阅读更多 →
继电器驱动电路模块化设计:从原理到PCB布局实战

继电器驱动电路模块化设计:从原理到PCB布局实战

在硬件开发过程中,继电器控制电路是每个工程师都会频繁接触的基础模块。无论是智能家居的灯光控制、工业设备的电机驱动,还是自动化系统的信号切换,继电器都扮演着关键角色。然而在实际PCB设计时,很多工程师会陷入"重复造轮子"的困境——每次新项目都要重新绘制继…

2026/7/25 1:31:07 阅读更多 →
提示词改写失效?92%的从业者踩中的4个隐形陷阱,及权威验证的3层语义重构模型

提示词改写失效?92%的从业者踩中的4个隐形陷阱,及权威验证的3层语义重构模型

更多请点击: https://kaifayun.com 第一章:提示词改写失效的底层归因诊断 提示词改写失效并非表层语法错误所致,而是源于大语言模型在推理过程中对语义不变性、上下文敏感度与指令对齐机制的深层耦合失配。当改写后的提示词在表面逻辑上看似…

2026/7/25 1:31:07 阅读更多 →
山东LED驱动电源选型与订购要点梳理

山东LED驱动电源选型与订购要点梳理

在山东地区,LED驱动电源作为太阳能控制器、太阳能一体化光源及智能控制系统的核心部件,其选型与订购直接影响系统性能、稳定性和长期运营成本。本文基于行业技术实践与合规标准,梳理关键要点,供从业者与终端用户参考。一、选型核心…

2026/7/25 1:30:06 阅读更多 →

日新闻

突破文档下载限制:kill-doc让你看到的都能保存

突破文档下载限制:kill-doc让你看到的都能保存

突破文档下载限制:kill-doc让你看到的都能保存 【免费下载链接】kill-doc 看到经常有小伙伴们需要下载一些免费文档,但是相关网站浏览体验不好各种广告,各种登录验证,需要很多步骤才能下载文档,该脚本就是为了解决您的…

2026/7/25 0:00:35 阅读更多 →
C++ string类模拟实现:从深拷贝到内存管理的完整指南

C++ string类模拟实现:从深拷贝到内存管理的完整指南

1. 项目概述:为什么我们要“手撕”string类?在C的学习道路上,尤其是从C语言过渡到C的“初阶”阶段,string类绝对是一个绕不开的核心。标准库里的std::string用起来太方便了,、find、substr,几个操作符和函数…

2026/7/25 0:00:35 阅读更多 →
三角洲寻宝鼠工具:高效文件搜索与资源管理实战指南

三角洲寻宝鼠工具:高效文件搜索与资源管理实战指南

1. 先搞清楚“三角洲寻宝鼠”到底是什么工具从名称来看,“三角洲寻宝鼠”更像是一个资源查找或文件检索类工具,而不是游戏或娱乐软件。这类工具的核心价值在于帮助用户快速定位特定资源,比如文档、图片、压缩包或特定格式的文件。如果你经常需…

2026/7/25 0:00:35 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/24 3:59:20 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/24 1:23:39 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/24 18:52:18 阅读更多 →

月新闻