awk:搜索存储在数组中的模式

awk:搜索存储在数组中的模式

我用awk它来解析文件。已将模式词存储在awk数组中。想做类似的事情。

if ( $0 ~ / arr[1] / ){
blah
}

我想检查存储在数组元素中的模式是否存在于正在解析的当前行中。

答案1

之后只需使用数组访问,不需要,因为//arr[1]被视为正则表达式模式,请执行以下操作:

if ( $0 ~ arr[1] ){ blah }

例子:

% awk 'BEGIN{a[1]="foo"} {if ($0 ~ /a[1]/) print "Matched"}' <<<'foobar'  
% awk 'BEGIN{a[1]="foo"} {if ($0 ~ a[1]) print "Matched"}' <<<'foobar' 
Matched

相关内容