コードは次のとおりです。
for i in "${x[@]}"
do
z+=$(awk '$1 == '$i' {print $2}' $file)
done
echo "${z[@]}"
次のエラーと目的の出力が提供されます。
awk: cmd. line:1: $1 == {print $2}
awk: cmd. line:1: ^ syntax error
$1
値が値と一致しない場合、$i
このエラーが表示されるようです。
誰かがこの問題を解決する方法を教えてもらえますか?
私は前に試しました-v
:
z+=$(awk -v '$1 == '$i' {print $2}' $file)
しかし、これは致命的です:
awk: fatal: `$1 ' is not a legal variable name
ベストアンサー1
$i を awk に変数として渡します。
z+=$(awk -v vari="$i" '$1 == vari {print $2}' "$file")