首页 > 解决方案 > 如果第二列与变量匹配,则 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 来实现。

标签: linuxshellawk

解决方案


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

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

推荐阅读