LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 371|回复: 0

精通awk系列(11):awk的工作流程

[复制链接]
发表于 2023-12-21 17:27:22 | 显示全部楼层 |阅读模式

awk工作流程
参考自:man awk的”AWK PROGRAM EXECUTION”段。

man --pager='less -p ^"AWK PROGRAM EXECUTION"' awk
执行步骤:

1、解析 -v var=val...选项中的变量赋值

2、编译awk源代码为awk可解释的内部格式,包括-v的变量


3、执行BEGIN代码段


4、根据输入记录分隔符RS读取文件 (根据ARGV数组的元素决定要读取的文件),如果没有指定文件,则从标准输入中读取文件,同时执行main代码段


如果文件名部分指定为 var=va1 格式,则声明并创建变量,此阶段的变量在BEGIN之后声明,所以BEGIN中不可用,main代码段可用


每读取一条记录:


都将设置NR、FNR、RT、符号$O等变量


(默认)根据输入字段分隔符FS切割字段,将各字段保存到 $1、$2...中


测试main代码段的pattern部分,如果测试成功则执行action部分


5、执行END代码段


文章链接: https://www.junmajinlong.com/shell/awk/awk_howtowork/
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表