Passe $ i para awk como uma variável e, portanto:
z+=$(awk -v vari="$i" '$1 == vari {print $2}' "$file")
Abaixo está o código:
for i in "${x[@]}"
do
z+=$(awk '$1 == '$i' {print $2}' $file)
done
echo "${z[@]}"
Está dando o seguinte erro com a saída desejada:
awk: cmd. line:1: $1 == {print $2}
awk: cmd. line:1: ^ syntax error
Acredito que quando o valor $1
não está correspondendo ao valor $i
, ele está mostrando esse erro.
Alguém pode me dizer como isso pode ser usado?
Eu tentei com -v
:
z+=$(awk -v '$1 == '$i' {print $2}' $file)
mas está dando fatal:
awk: fatal: '$1 ' is not a legal variable name
Passe $ i para awk como uma variável e, portanto:
z+=$(awk -v vari="$i" '$1 == vari {print $2}' "$file")
Tags awk