awk-01-选项和模式




awk介绍

awk 是一个处理文本的编程语言工具,能用简短的程序处理标准输入或文件、数据排序、计算以及生产报表等等


语法
awk option ' pattern {action} ' file
pattern 表示awk在数据中查找的内容
action 是在找到匹配内容时所执行的一系列命令
花括号用于根据特定的模式对一系列指令进行分组


awk 处理的工作方式和数据库类似,支持对记录和字段处理,这也是grep和sed不能实现的


用 1,2,3...数字的方式顺序的表示行(记录)中的不同字段
用$后跟数字,引用对应的字段,以逗号分隔, 0 表示整个行

image-20210813154310944




选项

image-20210813154421379




模式

常用模式

image-20210813154508901

动作就是 print 、流程控制、I/O语句等




示例

1 从文件中读取awk程序处理文件

image-20210813154611071


2 指定分隔符,打印指定字段

image-20210813154724805

指定多个分隔符

[ ] 元字符的意思是 符号其中任意一个字符,也就是说每次遇到一个 / 或者 # 就分割一个字段,这样更能处理字段

image-20210813155715813


3 三种变量赋值的方法

image-20210813154832516


4 输入awk全局变量到文件

image-20210813154900937


5 BEGIN和END

BEGIN 处理文件之前执行该操作,常用于修改内置变量、变量赋值、打印输出的页眉和标题

打印页眉

image-20210813154943994

END 是在程序处理完才会执行

打印页尾

image-20210813155009768


6 格式化输出 awk命令 到文件,默认输出文件为awkprof.out

image-20210813155037915


7 /re/ 正则匹配

image-20210813155105561


8 逻辑and、or、和not

8.1 匹配包含blp5和tcp的行

image-20210813155142034

8.2 匹配包含 blp5 或 tcp 的行

image-20210813155221030

8.3 不匹配开头是 blp5 和 tcp 的行

image-20210813155238982


9 匹配范围

image-20210813155258729


匹配关键字下一行到最后一行
解释:
1和2都不匹配3,不执行后面{ },执行t,t变量还没赋值,为空,空在awk中就为假,就不打印当前行。
匹配到3,执行t=1,next跳出,不执行t
4也不匹配3,执行t,t的值上次赋值为1,为真,打印当前行,以此类推

image-20210813172425225


打印匹配行到最后一行

image-20210813155608154


posted @ 2021-08-13 16:00  李成果  阅读(207)  评论(0编辑  收藏  举报