本章内容:再探gawk、在gawk程序中使用变量、使用结构化命令、格式化打印、使用函数。
1. 使用变量
gawk编程语言支持两种不同类型的变量:内建变量和自定义变量。
内建变量用于引用程序数据里的特殊功能,如数据字段变量、RS(记录分割符)和ORS(输出分割符)等。数据字段变量允许通过美元符号($)和字段位置引用字段,例如$1表示第一个字段。内建变量如FS(字段分割符)和OFS(输出字段分割符)用于控制字段和记录的处理。
自定义变量允许用户在程序代码中使用,遵循字母、数字和下划线的命名规则,区分大小写。
定义数组变量时,通过标准赋值语句设置变量名、索引值和元素值。
使用for语句遍历关联数组,通过索引值获取数据元素。
通过特殊命令从关联数组中删除索引值和相关数据元素。
正则表达式用于匹配记录中的数据字段,例如匹配包含特定字符串的记录。
匹配操作符允许限定正则表达式作用于特定数据字段,例如匹配以特定文本开头的字段。
在模式中使用数学表达式进行数字值匹配,例如筛选特定组ID的记录。
使用if语句进行条件判断,执行相应的代码块。
while循环用于遍历数据,检查迭代条件。
do-while循环保证至少执行一次,然后检查条件。
for循环结合迭代计数器简化循环控制。
格式化打印命令(printf)提供更精细的输出控制,包括指定格式和位置。
提供基本数学运算,如生成整数部分、随机数生成。
处理字符串值,如排序、分割数组等。
处理时间值,如获取时间戳、格式化日期。
通过function关键字定义自定义函数,可以传入参数和返回值。
函数定义需在代码块之前,可在程序中随意使用。
将多个函数存放在库文件中,便于复用。
通过处理数据文件,展示使用gawk的高级特性,如排序、计算总分和平均分。
总结:本章介绍了gawk的高级使用技巧,包括变量、模式匹配、结构化控制和格式化输出,以及如何定义和使用自定义函数和函数库。这些内容对于处理复杂数据文件和进行数据分析具有重要意义。