温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

AWK的工作原理是什么

发布时间:2021-10-14 16:15:01 来源:亿速云 阅读:111 作者:柒染 栏目:编程语言

这期内容当中小编将会给大家带来有关AWK的工作原理是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

AWK工作流程可分为三个部分:

  读输入文件之前执行的代码段(由BEGIN关键字标识)。

主循环执行输入文件的代码段。

  读输入文件之后的代码段(由END关键字标识)。

命令结构:

  awk'BEGIN{commands}pattern{commands}END{commands}'

下面描述出了AWK的工作流程:

  1、通过关键字BEGIN执行BEGIN块的内容,即BEGIN后花括号{}的内容。

  2、完成BEGIN块的执行,开始执行body块。

  3、读入有\n换行符分割的记录。

  4、将记录按指定的域分隔符划分域,填充域,$0则表示所有域(即一行内容),$1表示第一个域,$n表示第n个域。

  5、依次执行各BODY块,pattern部分匹配该行内容成功后,才会执行awk-commands的内容。

  6、循环读取并执行各行直到文件结束,完成body块执行。

  7、开始END块执行,END块可以输出最终结果。

  开始块(BEGIN)

开始块的语法格式如下:

  BEGIN{awk-commands}

  开始块就是在程序启动的时候执行的代码部分,并且它在整个过程中只执行一次。

  一般情况下,我们可以在开始块中初始化一些变量。

  BEGIN是AWK的关键字,因此它必须是大写的。

  注意:开始块部分是可选的,你的程序可以没有开始块部分。

  主体块(BODY)

  主体部分的语法格式如下:

  /pattern/{awk-commands}

  对于每一个输入的行都会执行一次主体部分的命令。

  默认情况下,对于输入的每一行,AWK都会执行命令。但是,我们可以将其限定在指定的模式中。

  注意:在主体块部分没有关键字存在。

  结束块(END)

  结束块的语法格式如下:

  END{awk-commands}

  结束块是在程序结束时执行的代码。END也是AWK的关键字,它也必须大写。与开始块相似,结束块也是可选的。

  实例

  先创建一个名为marks.txt的文件。其中包括序列号、学生名字、课程名称与所得分数。

  1)张三语文80

  2)李四数学90

  3)王五英语87

  接下来,我们将使用AWK脚本来显示输出文件中的内容,同时输出表头信息。

  $awk'BEGIN{printf"序号\t名字\t课程\t分数\n"}{print}'marks.txt

  执行以上命令,输出结果如下:

  序号名字课程分数

  1)张三语文80

  2)李四数学90

  3)王五英语87

  程序开始执行时,AWK在开始块中输出表头信息。在主体块中,AWK每读入一行就将读入的内容输出至标准输出流中,一直到整个文件被全部读入为止。

上述就是小编为大家分享的AWK的工作原理是什么了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

awk
AI