expandindo variáveis no awk [duplicado]

1

Tenho cerca de 1000 arquivos em cada um deles, se o primeiro campo corresponder a um número específico, preciso imprimir o terceiro elemento correspondente. Como o número 7 abaixo, não é constante e é baseado na saída do script anterior, quando estou tentando passar uma variável, ele falha.

$cat ${i} | head -14 | awk '$1 == "7" {print $3}'
$Supervisor
$blah=7
$cat ${i} | head -14 | awk '$1 == "${blah}" {print $8}'

Eu tentei olhar em volta com outras combinações para escapar / expandir a variável dentro da comparação, nenhuma delas parece ser capaz de expandir a variável blah .

    
por coolguy6764 26.01.2017 / 20:01

1 resposta

4

Sua melhor aposta é provavelmente passá-lo como uma variável awk com -v

head -14 "$i" | awk -v blah="$blah" '$1 == blah {print $8}'

ou sem a parte head :

awk -v blah="$blah" 'NR > 14 {exit} $1 == blah {print $8}' "$i"
    
por 26.01.2017 / 20:07

Tags