
linux awk命令详解2
发布日期:2025-04-05 21:09:31
浏览次数:5
分类:精选文章
本文共 1279 字,大约阅读时间需要 4 分钟。
awk处理器:文本处理与批处理脚本指南
awk(又名行处理器)是一种强大的文本处理工具,广泛应用于数据处理、批处理脚本及数据分析等场景。它的独特之处在于能够高效处理庞大文件,不易导致内存溢出或性能问题,适合日常工作场景。
awk命令基础
awk的命令格式大致如下:
awk [选项]ık [start]{命令} [end]{命令}
需要解析以下关键部分:
- [选项]:
-F
指定分隔符|-v
定义变量 - 引用代码块:使用
{}
包裹一行或多行命令 - 输出结果:默认输出当前行
awk处理流程
awk逐行处理文本,每行执行命令输出结果。每一行会循环执行BEGIN
、{ command }
、END
块。
常用选项
-F
指定分隔符:默认空格或制表符,可指定多个分隔符-v
定义变量:用于处理复杂计算或变量引用
awk命令实例
示例1
awk '{print $0}' /etc/passwd
输出:打印每一行完整内容
示例2
awk '{print "a"}' /etc/passwd
输出:每行输出一个a
示例3
分割处理
awk -F":" '{print $1 $3}' /etc/passwd
说明:以:
分隔,输出第一个字段和第三个字段,相连不添加空格
awk -F:" " '{print $1,$3}' /etc/passwd
说明:自定义添加空格,确保输出格式符合要求
awk脚本应用
脚本案例1:计算文件大小
lak -l|awk 'BEGIN{sum=0} !/^d/{sum+=$5} END{print "total size is:",sum/1024,"KB"}'
说明:统计/home
目录下普通文件总大小(KB单位)
脚本案例2:状态统计
netstat -anp|awk '$6~/LISTEN|CONNECTED/{sum[$6]++} END{for (i in sum) printf "%-10s %-6s %-3s \n",i," ",sum[i]}'
说明:统计netstat -anp
输出中LISTEN
和CONNECTED
状态的连接数
awk变量与逻辑控制
变量引用
awk '{global_var = 10; print global_var}'
说明:定义全局变量
条件判断
awk '{if ($1 ~/mail/) print $1}' /etc/passwd
说明:判断字段是否包含mail
,打印符合条件的行
查询特定字段
awk '{print NR}' /etc/passwd
说明:打印每行的记录号(从1开始递增)
数值计算
awk '{print $3+$4}' /etc/passwd
说明:对两个字段进行加法运算并输出结果
常用技巧与注意事项
- 大文件处理:awk处理大文件不会占用全部内存,适合内存不足的情况
- 性能优化:避免一次性读取整个文件,适量分批处理
- 脚本复用:使用awk脚本可以快速高效地处理大量数据,优化工作流程
以上只是awk的一小部分应用场景和实例,通过灵活运用awk可以应对更为复杂的处理需求。
发表评论
最新留言
哈哈,博客排版真的漂亮呢~
[***.90.31.176]2025年04月28日 20时46分53秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
libssh2编译部署详解
2023-01-31
LibTorch与MFC
2023-01-31
libtorch中python中cuda可以使用,但是是c++环境中不行
2023-01-31
LibTorch中TensorOptions的使用
2023-01-31
LibTorch之优化器
2023-01-31
LibTorch之全连接层(torch::nn::Linear)使用
2023-01-31
LibTorch之图像分类
2023-01-31
LibTorch之张量操作与线性回归
2023-01-31
LibTorch之损失函数
2023-01-31
LibTorch之激活函数层
2023-01-31
LibTorch之网络层中的卷积层
2023-01-31
LibTorch之网络模型构建
2023-01-31
LibTorch实现MLP(多层感知机)
2023-01-31
Libtorch常用代码
2023-01-31
LibTorch框架学习
2023-01-31
libtorch组成讲解之ATen、c10、at、csrc
2023-01-31
libvirt TLS
2023-01-31
libvirtd tcp 方式远程连接配置步骤
2023-01-31
libvirt报错处理及解决
2023-01-31