欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

Shell脚本,awk编程语言,awk科普,awk语法,风格,awk的print功能,列数$num

时间:2023-07-17
Shell脚本,awk编程语言,awk科普,awk特点和作用

O、介绍awk
1、基于模式匹配检查输入文本,逐行处理并输出
2、通常用于在shell脚本中,获取指定的数据
3、单独使用时,可以对文本数据做统计

一、awk不同与sed和grep的地方
1、grep的作用是从文件中过滤并显示出指定内容的内容行。
2、sed除了可以从文件中过滤出指定内容的内容行,还能对文件的行数据进行非交互式编辑和其他操作。
3、awk用于对指定文件的数据进行分列,区别与以行作为数据单位,awk可以将内容按照规则分列,并对逐列的数据进行非交互式编辑和其他操作。

二、awk语法

1、前置命令 | awk [选项] ‘[条件]{指令}’
前置命令的执行结果管道给awk

2、awk [选项] ‘[条件]{指令}’文件
使用awk逐行遍历指定文件中的内容并进行特定处理

三、awk风格
类似于编程语言,具有编程语言的特定,例如:
1、多条指令语句可以用分号;分割
2、支持if,for判断
3、变量必须使用双引号,而不是Linux系统下的单引号,双引号,反引号三个

四、awk的print打印功能
1、awk ‘{print}’ dir
打印文件中的列内容,从第一行开始所有列,到最后一行的所有列。

2、awk ‘{print $1,$3,$2}’ dir
打印文件中的第1列,第3列,第2列,默认以空格或tab划分,如果是打印$0则表示打印所有列,就是完整行

3、awk -F: ‘{print $1,$3}’ dir
-F可以指定分隔符,默认分隔符为空格和tab键,分隔符不会作为打印内容输出。

4、awk ‘{print “value1:”,$1,“value2:”,$2}’ dir
需要打印的常量需要用引号,print后面的打印内容用逗号隔开时,对应的都好会在打印时变成空格,没有逗号的内容中间则不会有空格。

五、awk的内置变量,NF,NR有特殊含义,可直接使用
1、$n 指定分割的第n列字段,$1表示第一列
2、$0 整行,所有列

3、NF 记录当前处理行的分割列数,用法:
awk ‘{print NF}’ dir
打印每一行的列数

awk ‘{print $NF}’ dir
打印每一行的最后一列,行的列数对应的列就是最后一列。

支持通过±运算得出的列数,比如:
awk ‘{print $(NF-2)}’ dir
就是打印倒数第三列

4、NR 记录当前已读入行的数量,行号
awk ‘{print NR}’ dir

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。