Linux中awk详解(1)

一、awk的基础介绍

awk是一个强大的linux命令,有强大的文本格式化的能力,好比将一些文本数据格式化成专业的excel表的样式

awk早期在Unix上实现,我们用的awk是gawk,是GUN awk的意思

awk更是是一门编程语言,支持条件判断、数组、循环等功能

1.1、再谈三剑客

  • grep,擅长单纯的查找或匹配文本内容
  • sed,更适合编辑、处理匹配到的文本内容
  • awk,更适合格式化文本内容,对文本进行复杂处理 

这三个命令称之为Linux的三剑客(如果想看其它两个命令的使用, 可以去我的主页查找)

1.2、awk语法: 

  • 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的使用, 想了解的话可以去我的主页看看

猜你喜欢

转载自blog.csdn.net/m0_50370837/article/details/125120424