深入探索 gawk:模式匹配、结构化命令与内置函数的应用
1. 使用模式匹配过滤数据记录
gawk 程序支持多种类型的匹配模式来过滤数据记录,与 sed 编辑器类似。特殊的 BEGIN 和 END 关键字可在读取数据流前后执行语句,同时也能创建其他模式,在数据流中出现匹配数据时执行相应语句。
1.1 正则表达式
可以使用基本正则表达式(BRE)或扩展正则表达式(ERE)来过滤程序脚本应用的数据流行。正则表达式必须出现在其控制的程序脚本左花括号之前,示例如下:
$ gawk 'BEGIN{FS=","} /11/{print $1}' data1
data11
$
此例中,正则表达式 /11/ 匹配数据字段中任意位置包含字符串 “11” 的记录。gawk 会将定义的正则表达式与记录中的所有数据字段(包括字段分隔符)进行匹配:
$ gawk 'BEGIN{FS=","} /,d/{print $1}' data1
data11
data21
data31
$
不过,这种匹配可能会导致问题,若要匹配特定数据字段的正则表达式,建议使用匹配运算符。
1.2 匹配运算符
匹配运算符(波浪号 ~ )可将正则表达式限制在记录的特定数据字段上。使用时需指定匹配运算符、数据字段变量和要匹配的正则表达式,例如 $1 ~ /^data/ 表
超级会员免费看
订阅专栏 解锁全文
86

被折叠的 条评论
为什么被折叠?



