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

【Linux】Linux 命令awk和sed的简单介绍

awk [可选的命令行选项] ‘BEGIN{命令 } pattern{ 命令 } END{ 命令 }’ 文件名
BEGIN{命令}部分
执行时机
BEGIN块中的命令在awk开始读取输入文件之前执行。它主要用于初始化变量、设置全局环境等操作,这些操作只需要在处理文件之前执行一次。
示例
假设我们要计算一个文件中某列数字的总和,我们可以在BEGIN块中初始化一个变量来存储总和。
例如,有一个文件 ​data.txt​,内容如下:
1 2 3
4 5 6
7 8 9
1 2 3
4 5 6
7 8 9

我们可以使用以下awk命令:
awk ‘BEGIN{sum = 0} {sum += $1} END{print sum}’ data.txt
awk ‘BEGIN{sum = 0} {sum += $1} END{print sum}’ data.txt

在这个例子中,​BEGIN{sum = 0}​初始化了变量 ​sum​为0,这个操作在处理文件中的数据之前就已经完成。

pattern{命令}部分
执行时机与条件判断
pattern块中的命令针对每一个输入行进行处理,当输入行满足指定的模式(pattern)时执行其中的命令。如果没有指定模式,则默认对每一行都执行这些命令。
模式可以是正则表达式、关系表达式等。例如,我们可以指定只对包含某个特定字符串的行进行操作,或者对满足某个数值关系(如某列的值大于某个数)的行进行操作。
示例
还是以上面的 ​data.txt​文件为例,如果我们只想对第一列数字大于3的行进行操作,我们可以这样写:
awk ‘$1 > 3{print $0}’ data.txt
awk ‘$1 > 3{print $0}’ data.txt

在这个命令中,​$1 > 3​是模式(pattern),​{print $0}​是当行满足模式时执行的命令,这里 ​$0​表示整行内容。如果某一行的第一列数字大于3,就会打印出这一整行。
END{命令}部分
执行时机
END块中的命令在awk处理完所有的输入行之后执行。它通常用于输出最终结果、清理变量等操作。
示例
在前面计算文件中第一列数字总和的例子中,​END{print sum}​就是在处理完所有行之后,打印出变量 ​sum​的值,也就是第一列数字的总和。如果没有END块,我们就无法得到最终的计算结果。

awk:https://mp.weixin.qq.com/s/nE_FqB_NaUhlF7HP_2xorQ

sed: https://mp.weixin.qq.com/s/5R-ymJ5xUfhYU9nX0uwhXw


http://www.kler.cn/a/392340.html

相关文章:

  • 微服务(二)
  • Bugku CTF_Web——文件上传
  • 项目集章程program charter
  • 文献解读-DNAscope: High accuracy small variant calling using machine learning
  • 华为机试HJ39 判断两个IP是否属于同一子网
  • 算法演练----24点游戏
  • Vestar:AI造神邸,颠覆Meme叙事的新范式
  • 45.第二阶段x86游戏实战2-hook监控实时抓取游戏lua
  • 【python GUI编码入门-24】使用Tkinter构建一个简单的音乐播放器
  • 【Linux:IO多路复用(select函数)
  • 新的服务器Centos7.6 安装基础的环境配置(新服务器可直接粘贴使用配置)
  • 数据集标注txt文件读取小工具
  • # 如何查看 Ubuntu 版本?
  • Java | Leetcode Java题解之第559题N叉树的最大深度
  • 漏洞分析 | Spring Framework路径遍历漏洞(CVE-2024-38816)
  • 小波神经网络:结合小波变换与神经网络的力量(附Pytorch代码实现)
  • 详细介绍MySQL、Mongo、Redis等数据库的索引
  • Prometheus常用查询PromQL表达式
  • 国家网络安全法律法规
  • mqtt学习笔记(一)
  • 汽车共享管理:SpringBoot技术的应用与挑战
  • 操作系统离散存储练习题
  • C#核心(9)静态类和静态构造函数
  • 机器学习——朴素贝叶斯
  • C++ QT 工具日志异步分批保存
  • 英伟达Isaac Manipulator产品体验