我需要编写一个正则表达式来匹配以下模式:
fltr_desc_name那是..。"fltr“后跟一个下划线,后跟由下划线分隔的任意数量的单词。
例如:我需要一个正则表达式来匹配以下内容:
fltr_desc_name
fltr_nameone_nametwo
fltr_level_name_desc我在“awk”中的"if“语句中使用它: for ex:
awk '/Transformation/ { if ($4=="Filter" && $5=="fltr_*") print $4,$5 }' filename 请帮助我编写正则表达式,并告诉我如何在"awk“命令中的"if”条件中使用正则表达式。谢谢。
发布于 2013-01-08 18:46:30
你可以使用
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。
发布于 2015-12-16 02:51:11
在awk中匹配正则表达式时需要使用波浪号字符~/ /,例如
if ($5 ~ /fltr_*/)发布于 2013-01-08 21:46:26
awk '/Transformation/ && $4=="Filter" && $5~/^fltr_[[:alpha:]_]+/ { print $4,$5 }' filenamehttps://stackoverflow.com/questions/14212993
复制相似问题