Awk第3列(如果第二行与一个变量匹配)

时间:2018-06-26 09:54:40

标签: linux shell awk

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

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来实现。

1 个答案:

答案 0 :(得分:0)

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

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