经常操作日志的小伙伴们对awk命令肯定不陌生,awk工具给我们分析日志提供了很便捷的操作,帮助我们完成统计和分析日志,也有很多小伙伴不会用到awk。awk作为一个强大的工具,对于我们工作能力和工作效率的提升,都有很多帮助,下面就让我们来领略一下awk的强大吧!
1.awk简介
awk适合文本处理和报表生成,在linux系统日常处理工作中,发挥了重要的作用,awk是三剑客的老大,利刃出销,必将不凡。
2.awk介绍
例如:awk '{print $0}' /etc/passwd
![5cb7e624ad1cfabe0e89e9c7b497ef47.png](https://img-blog.csdnimg.cn/img_convert/5cb7e624ad1cfabe0e89e9c7b497ef47.png)
awk命令简单使用
解释:我们执行完上述命令之后,/etc/passwd文件的内容出现在眼前了。
在调用awk时,我们指定/etc/passwd为输入文件。执行awk时,会依次对/etc/passwd中的每一行执行print命令。所有输出都发送到stdout,所得到的结果和cat /etc/passwd相同。
再次强调:awk对输入文件中的每一行都执行这个脚本。
![7feb16d5cbdcf0d6e142d0a64becc7de.png](https://img-blog.csdnimg.cn/img_convert/7feb16d5cbdcf0d6e142d0a64becc7de.png)
简单说明
例如:awk -F ":" '{print $1}' /etc/passwd
![8a64c9cc25ffbfaac8df846664797012.png](https://img-blog.csdnimg.cn/img_convert/8a64c9cc25ffbfaac8df846664797012.png)
例如:awk -F ":" '{print $1 $3}' /etc/passwd
![d116dbdb0b7f1627b3fa7064b6947643.png](https://img-blog.csdnimg.cn/img_convert/d116dbdb0b7f1627b3fa7064b6947643.png)
例如:awk -F ":" '{print $1 " " $3}' /etc/passwd
![9003985368283277ff3fb1d57e50e116.png](https://img-blog.csdnimg.cn/img_convert/9003985368283277ff3fb1d57e50e116.png)
例如:awk -F ":" '{print "username:"$1 "uid:"$3}' /etc/passwd
![ae8d0a4773ea92b195bd9788e6280b73.png](https://img-blog.csdnimg.cn/img_convert/ae8d0a4773ea92b195bd9788e6280b73.png)
3.BEGIN和END模块
对于每个输入行,awk都会执行每个脚本代码块一次。然而,在很多情况下,可能需要在awk开始输入文件中的文本之前执行初始化代码。对于这种情况,awk允许您定义一个BEGIN块。awk在开始处理输入文件之前会执行BEGIN块,所以它是初始化FS(字段分隔符)变量、打印页眉或初始化其他在程序中以后会引用的全局变量的最佳位置。
awk还提供了END模块。awk在处理了输入文件中的所有行之后执行这个块。通常,END块用于执行最终计算或打印应该出现在输出流结尾的摘要信息。
4.运算符
![ed5944e33d4a8c1f6aacf79c8a69a3fd.png](https://img-blog.csdnimg.cn/img_convert/ed5944e33d4a8c1f6aacf79c8a69a3fd.png)