一、awk的基础介绍
awk是一个强大的linux命令,有强大的文本格式化的能力,好比将一些文本数据格式化成专业的excel表的样式
awk早期在Unix上实现,我们用的awk是gawk,是GUN awk的意思
awk更是是一门编程语言,支持条件判断、数组、循环等功能
1.1、再谈三剑客
- grep,擅长单纯的查找或匹配文本内容
- sed,更适合编辑、处理匹配到的文本内容
- awk,更适合格式化文本内容,对文本进行复杂处理
这三个命令称之为Linux的三剑客(如果想看其它两个命令的使用, 可以去我的主页查找)
1.2、awk语法: ![](https://img-blog.csdnimg.cn/7a9ae7b5f1094c9093eca0b43a5cc6cb.png)
- Action指的是动作,awk擅长文本格式化,且输出格式化后的结果,因此最常用的动作就是print和printf
1.3、awk的内置变量
1.4、awk参数
二、awk使用场景
2.1、取出第二列
我们执行的命令是awk '{print $2}’,没有使用参数和模式,$表示输出文本的第二列信息
awk默认以空格为分隔符,且多个空格也识别为一个空格,作为分隔符
awk是按行处理文件,一行处理完毕,处理下一行,根据用户指定的分割符去工作,没有指定则默认空格
指定了分隔符后,awk把每一行切割后的数据对应到内置变量
2.2、自动定义输出内容
2.3、输出整行信息
2.4、显示文件第五行
NR在awk中表示行号, NR==5表示行号是5的那一行
注: 一个等于号,是修改变量值的意思, 两个等于号是关系运算符, 是"等于"的意思
2.5、显示文件2-5行
2.6、给每一行的内容添加行号
添加变量, NR等于行号,$0表示一整行的内容
2.7、显示文件3-5行且输出行号
2.8、显示test.txt文件的第一列, 倒数第二和最后一列, 以":"为分隔符来分割字段
后期还会继续更新awk的使用, 想了解的话可以去我的主页看看