如果第二个可以与变量匹配,则第 3 列 awk



我是Awk和linux的新手。如果第 2 列与变量匹配,我想打印第 3 列。

file.txt
1;XYZ;123
2;ABC;987
3;ZZZ;999

所以我想打印 987,在检查第二列是否为 ABC 后

name="ABC"
awk -F';' '$2==$name { print $3 }' file.txt

但这行不通。请帮忙。请注意,我只想使用 AWK,以了解如何使用 awk 实现这一点。

执行以下操作,然后它应该会飞。awk变量不像 shell 那样工作,您必须通过在 awk 代码中使用-v var_name来明确提及它们。

name="ABC"
awk -F';' -v name="$name" '$2==name{ print $3 }' file.txt

最新更新