贵阳网站定制电话做装修网站
news/
2025/10/7 16:45:10/
文章来源:
贵阳网站定制电话,做装修网站,杭州网页设计招聘网,网络营销工具介绍1 第2.1节#xff1a;AWK脚本结构
1.1 第1个awk脚本 假设有如下的数据待处理#xff0c;需要将第2列提取出来#xff1a;
#, 名称, 大小, 类型, 修改, 属性
1, COMMIT_EDITMSG, 331 bytes, 文件, 24/09/16 08:42:19, -a-----
2, config, …1 第2.1节AWK脚本结构
1.1 第1个awk脚本 假设有如下的数据待处理需要将第2列提取出来
#, 名称, 大小, 类型, 修改, 属性
1, COMMIT_EDITMSG, 331 bytes, 文件, 24/09/16 08:42:19, -a-----
2, config, 130 bytes, 文件, 24/09/14 11:52:27, -a-----
3, description, 73 bytes, 文件, 24/09/14 11:52:27, -a-----
4, HEAD, 23 bytes, 文件, 24/09/14 11:52:27, -a-----
5, index, 145 bytes, 文件, 24/09/16 08:42:19, -a-----
6, tgitchangelist, 0 bytes, 文件, 24/09/16 08:42:21, -a-----1.1.1 命令行方式
awk示例
awk {print $2} data.txt注awk命令后的单引号内容表示awk语句。
输出
名称,
COMMIT_EDITMSG,
config,
description,
HEAD,
index,
tgitchangelist,1.1.2 脚本方式 将下面的代码复制到文件get_col_2.awk
#!/bin/awk -f
{print $2
}注意第1行注释很重要-f表示该脚本可以接收文件 执行命令get_col_2.awk data.txt 输出
$ ./get_col_2.awk data.txt
名称,
COMMIT_EDITMSG,
config,
description,
HEAD,
index,
tgitchangelist,发现什么没有 不论是命令方式还是脚本文件方式awk代码都用{}包围。
1.2 模式 - 动作Pattern - Action 在 AWK 脚本中模式 - 动作是核心结构。模式用于筛选输入数据中的特定行动作则定义了对这些筛选出来的行要执行的操作。 示例代码
#!/bin/awk -f
$1 % 2 0 {print $1,$2
}$1 % 3 0 {print $1,$2
}上述示例代码中有两个模式和动作
第1个模式第1列的数字整除2即$1 % 2 0则执行后面{print $1,$2}中的动作这里是打印第1、2列。第2个模式第1列的数字整除3即$1 % 3 0则执行后面的{print $1,$2}中的动作这里是打印1、2列当然可以做别的事。 输出
$ ./get_col_2.awk data.txt
#, 名称,
#, 名称,
2, config,
3, description,
4, HEAD,
6, tgitchangelist,
6, tgitchangelist,注由于有多个模式-动作块所以会发现有些数据打印了多次 说明 awk的处理逻辑是读取每1行文本将这行文本丢到每个模式-动作进行处理如果匹配了模式则执行该模式对应的动作。 模式可以是关系表达式如$1 100筛选出第一列数据大于 100 的行、正则表达式如/error/筛选出包含 “error” 字符串的行等。动作部分则能包含各种 AWK 语句像变量赋值、数学运算、调用函数等。通过灵活组合模式与动作实现对数据的精准处理。
1.3 BEGIN 和 END 块
BEGIN 块在 AWK 读取输入数据之前执行常用于初始化变量、设置环境等操作。例如在对系统及进程的 CPU、内存进行自动监控分析时可能需要初始化一些统计变量记录总的 CPU 使用时长、内存使用峰值等就可以在 BEGIN 块中完成
BEGIN {#x20; totalCpuTime 0#x20; maxMemoryUsage 0}END 块在所有输入数据处理完毕后执行通常用于输出最终结果、清理资源等。继续上面的例子在分析完所有数据后我们想输出总的 CPU 使用时长和内存使用峰值的统计结果就可在 END 块中实现
END {#x20; print Total CPU Time:, totalCpuTime#x20; print Max Memory Usage:, maxMemoryUsage}通过 BEGIN 和 END 块能让 AWK 脚本在数据处理的前后阶段完成一些准备和收尾工作与中间的模式 - 动作结构协同构建出完整、高效的数据处理流程这也是 AWK 在数据处理领域强大功能的体现。
1.4 总结 一个完整的awk脚本包含以下几部分
注释该注释是有意义的可以告诉脚本引擎该脚本的执行方式BEGIN块在1行数据都没有处理的时候进行一些初始化设置也可以定义一些函数模式-动作块数据处理代码可以有多个模式-动作块对同一行数据进行多次处理END块数据全部处理结束后执行的语句 作者声明本文用于记录和分享作者的学习心得可能有部分文字或示例来自AI平台如豆包、DeepSeek(硅基流动)(注册链接)等由于本人水平有限难免存在表达错误欢迎留言交流和指教 Copyright © 2022~2025 All rights reserved.
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/930611.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!