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

第2.4节:学会像AWK一样思考

1 第2.4节:学会像AWK一样思考

  AWK的工作方式类似于工厂的流水线。文本数据就像流水线上的产品,AWK逐行读取这些文本,对每行文本进行分割处理,然后通过一系列的模式匹配和动作执行来完成特定的任务。下面我们详细介绍AWK的工作流程。

1.1 工作流程详解

1.1.1 逐行读取文本

  AWK会一行一行地读取输入的文本数据。这就好比流水线上的产品依次通过各个加工环节,每个产品(即每行文本)都会经历相同的处理流程。

1.1.2 按分隔符分割文本

  对于读取的每一行文本,AWK会根据FS变量(默认是空格)定义的分隔符进行分割。分割后的每个部分会被存储到$1, $2, $3… 这些变量中,而$0则表示原始的文本行。例如,对于文本行 "apple banana cherry",分割后$1"apple"$2"banana"$3"cherry"$0"apple banana cherry"

1.1.3 模式匹配与动作执行

  处理好的文本会被传递给模式进行匹配。如果某一行文本与某个模式匹配成功,就会执行该模式后面的动作。AWK可以有多个模式 - 动作对,就像流水线上有多道工序,每个工序都会对匹配的产品进行加工。有些工序可能会产生一些输出(如打印某些信息),而有些工序可能什么也不输出。

1.2 流程图

  下面是使用mermaid语法绘制的AWK工作流程的流程图:

匹配成功
匹配失败
开始
逐行读取文本
按`FS`分隔符分割文本
模式匹配
执行动作
跳过
是否还有更多模式
是否还有更多行
结束

1.3 示例代码说明

  假设我们有一个文件 data.txt,内容如下:

John 25 male
Jane 22 female
Bob 30 male

我们可以使用AWK来筛选出年龄大于25岁的人的信息,代码如下:

awk '$2 > 25 { print $1, $2, $3 }' data.txt

在这个例子中,$2 > 25模式{ print $1, $2, $3 } 是动作。AWK会逐行读取 data.txt 文件,对每行进行分割,然后检查 $2(年龄)是否大于25。如果满足条件,则执行动作,打印出这个人的姓名、年龄和性别。

1.4 总结

  通过将AWK的工作方式类比为工厂流水线,我们可以更直观地理解它的工作原理。逐行读取分割文本模式匹配动作执行构成了AWK处理文本的基本流程。这种思考方式有助于我们更好地利用AWK来完成各种文本处理任务。


作者声明:本文用于记录和分享作者的学习心得,可能有部分文字或示例来自AI平台,如:豆包、DeepSeek(硅基流动)(注册链接)等,由于本人水平有限,难免存在表达错误,欢迎留言交流和指教!
Copyright © 2022~2025 All rights reserved.

相关文章:

  • 从标准九九表打印解读单行表达式的书写修炼(Python)
  • Linux:安装 CentOS 7(完整教程)
  • 环境一号卫星系列:HJ-1A + HJ-1B + HJ-1C 卫星详解
  • NLP高频面试题(四十五)——PPO 算法在 RLHF 中的原理与实现详解
  • STM32F103ZET6移植FATFS文件系统教程(W25Q32)
  • 文件操作(二进制文件)
  • Vue el-from的el-form-item v-for循环表单如何校验rules(二)
  • 「Java EE开发指南」用MyEclipse开发EJB 3无状态会话Bean(二)
  • 磁导率;电感为什么存在饱和电流?气隙的定义,磁芯开气隙有哪些作用
  • Redis的IO多路复用
  • Flutter的自动化测试 python flutter编程
  • 从IF到SWITCH:解锁Power BI条件判断的应用场景
  • 第五阶段:项目实践与后续学习指引
  • 【Axure绘制原型】小图标使用技巧
  • Spring boot 知识整理
  • 利用耦合有限元和神经网络计算的骨重塑模拟多尺度方法
  • 【java】记录一个开启事务抛出异常的场景
  • 【sqlserver】修改nvarchar类型为varchar脚本
  • 神经光子渲染:物理级真实感图像生成——从麦克斯韦方程到深度学习
  • C# 西门子通信
  • 分红网站建设/seo点击排名软件哪里好
  • 肇东网站建设/搜索引擎推广的关键词
  • 遵义网站开发公司/江苏seo排名
  • 深圳最大的手机市场在什么地方/一个网站的seo优化有哪些
  • 网站服务器数据库/seo舆情优化
  • 金湖网站建设/友情链接怎么弄