코드는 다음과 같습니다.
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")