首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于匹配awk命令中的模式的正则表达式

问用于匹配awk命令中的模式的正则表达式
EN

Stack Overflow用户
提问于 2013-01-08 18:33:16
回答 6查看 42.7K关注 0票数 7

我需要编写一个正则表达式来匹配以下模式:

代码语言:javascript
复制
fltr_desc_name

那是..。"fltr“后跟一个下划线,后跟由下划线分隔的任意数量的单词。

例如:我需要一个正则表达式来匹配以下内容:

代码语言:javascript
复制
fltr_desc_name
fltr_nameone_nametwo
fltr_level_name_desc

我在“awk”中的"if“语句中使用它: for ex:

代码语言:javascript
复制
awk '/Transformation/ { if ($4=="Filter" && $5=="fltr_*") print $4,$5 }' filename  

请帮助我编写正则表达式,并告诉我如何在"awk“命令中的"if”条件中使用正则表达式。谢谢。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2013-01-08 18:46:30

你可以使用

代码语言:javascript
复制
awk '/Transformation/ && $4=="Filter" && match($5, /^fltr_[A-Za-z_]+/) { print $4,$5 }' filename

不需要使用if语句,只需使用上面的多个匹配条件即可。match返回正则表达式^fltr_[A-Za-z_]+在$5中的匹配位置,如果没有,则返回0。0的值为false,其他值为true。

票数 7
EN

Stack Overflow用户

发布于 2015-12-16 02:51:11

在awk中匹配正则表达式时需要使用波浪号字符~/ /,例如

代码语言:javascript
复制
if ($5 ~ /fltr_*/)
票数 22
EN

Stack Overflow用户

发布于 2013-01-08 21:46:26

代码语言:javascript
复制
awk '/Transformation/ && $4=="Filter" && $5~/^fltr_[[:alpha:]_]+/ { print $4,$5 }' filename
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14212993

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档