标签:操作 列表 ble 区域 保存 file 模式匹配 报告 大括号
awk不仅仅是Linux系统中的一个命令,而且是一种编程语言
它可以用来处理数据和生成报告(excel)
处理的数据可以是一个或多个文件
可以使直接来自标准输入、也可以是通过管道获取标准输入
awk可以在命令行上直接编辑命令进行操作,也可以写成awk程序来进行更为复杂的操作
awk指令是由模式、动作、或者模式和动作的组合组成
名称 | 含义 |
---|---|
record | 记录,行 |
filed | 域,区域,字段,列 |
默认处理所有行
awk中$0表示整行
FNR与NR类似,不过文件记录不递增,每个文件都从1开始
awk同sed一样也可以通过模式匹配来对输入的文本进行匹配处理
awk也支持大量的正则表达式模式,大部分与sed支持的元字符类似
awk支持的正则表达式元字符
awk默认不支持的元字符,和需要添加参数才能支持的元字符
正则表达式的运用,默认是在行内查找匹配的字符串,若有匹配则执行action操作,但是有时候仅需要固定的列表匹配指定的正则表达式
如:
想取/etc/passwd文件中第5列($5)这一列查找匹配mail字符串的行,这样就需要用另外两个匹配操作符。并且awk里面只有这两个操作符来匹配正则表达式
正则匹配操作符 | 说明 |
---|---|
~ | 用于对记录或区域的表达式进行匹配。 |
!~ | 用于表达与~相反的意思。 |
1)显示awk.txt中GHI列
2)显示包含321的行
显示所有列,可以什么都不用加
3)以#为分隔符,显示第一列以B开头或最后一列以1结尾的行
4)以#为分隔符,显示第一列以B或C开头的行
awk是一种编程语言,能够进行更为复杂的判断,当条件为真时,awk就执行相关的action,主要是在针对某一区域做出相关的判断,如打印成绩在80分以上的,这样就必须对这个区域做比较判断
下表列出了awk可以使用的关系运算符,可以用来比较数字字符串,还有正则表达式,当表达式为真的时候,表达式结果为1,否则为0,只有表达式为真,awk才执行相关的action。
awk支持的关系运算符
运算符 | 含义 | 示例 |
---|---|---|
< | 小于 | x>y |
<= | 小于或等于。 | x<=y |
== | 等于 | x==y |
!= | 不等于 | x!=y |
>= | 大于或等于 | x>=y |
> | 大于 | x<y |
显示awk.txt的第2,3行
标签:操作 列表 ble 区域 保存 file 模式匹配 报告 大括号
原文地址:https://www.cnblogs.com/hyunbar/p/13255879.html