awk: procura por padrão armazenado em um array

1

Eu uso awk para analisar um arquivo. Tenha armazenado palavras padrão em um array awk . Gostaria de fazer algo assim.

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

Eu quero verificar se o padrão armazenado no elemento da matriz é encontrado na linha atual que está sendo analisada.

    
por Andromeda64 18.11.2016 / 21:48

1 resposta

0

Apenas use o array acessando depois, não há necessidade do // , então o arr[1] será considerado como um padrão Regex, faça:

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

Exemplo:

% 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
    
por heemayl 18.11.2016 / 22:03