41、深入探索 gawk:模式匹配、结构化命令与内置函数的应用

深入探索 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/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值