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"
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
.
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"