正则表达式 – 正则表达式匹配awk命令中的模式

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

fltr_desc_name

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

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

fltr_desc_name
fltr_nameone_nametwo
fltr_level_name_desc

我在“awk”中的“if”语句中使用它:
对于前:

awk '/Transformation/ { if ($4=="Filter" && $5=="fltr_*") print $4,$5 }' filename  

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

最佳答案
你可以用

awk '/Transformation/ && $4=="Filter" && match($5, /^fltr_[A-Za-z_]+/) { print $4,$5 }' filename

无需使用if语句,您可以按照上述使用多个匹配条件. match返回$5中正则表达式^ fltr_ [A-Za-z_]的匹配位置,如果没有则返回0. 0的计算结果为false,其他任何内容都为true.

转载注明原文:正则表达式 – 正则表达式匹配awk命令中的模式 - 代码日志