o problema que você está enfrentando é que você está tentando usar variáveis BASH dentro do comando awk que é protegido por aspas simples ( '...'
). dentro de aspas simples, o bash não expande as variáveis (por exemplo, ${BI2}
), então o awk literalmente verá $6 = "${BI2}"
e irá definir o valor da sexta coluna como o literal "${B12}"
. / p>
Felizmente, você pode criar facilmente awk
variables a partir de shell
variables usando o argumento --assign
(aka -v
):
awk \
-v BI2="${BI2}" \
-v DS2="${DS2}" \
-v DSMAX2="${DSMAX2}" \
-v WS2="${WS2}" \
-v D22="${D22}" \
-v D32="${D32}" \
'{if($1==2)
{
$6 = BI2; $7 = DS2; $8 = DSMAX2; $9 = WS2; $25 =D22; $26 =D32;
}
print $0;
}'