使用 awk 显示重复数据在一行中打印 $2,$3,$4

使用 awk 显示重复数据在一行中打印 $2,$3,$4

如果我有 2 个包含以下内容的列表(示例):

list1
x;00:26:82:50:00:00;192.168.1.195;COMPUTER1
x;00:26:82:50:11:11;192.168.1.195;COMPUTER2
x;00:26:82:50:22:22;192.168.1.196;COMPUTER3

list2
x;00:26:82:50:11:11;192.168.1.197;COMPUTER3

当我运行此命令时会显示重复项:

awk -F\; '{print $2}' list* | sort | uniq -d
out: 00:26:82:50:11:11
awk -F\; '{print $3}' list* | sort | uniq -d
out: 192.168.1.195
awk -F\; '{print $4}' list* | sort | uniq -d
out: COMPUTER3

我的问题是:

如何在一行上启动命令 (awk -F\;..etc) 并获得相同的结果?

PD: 没有 &&

谢谢

答案1

您可以直接从命令行使用简单的脚本执行此操作,使用 cut(1) 而不是 awk(1),如下所示:

$ for field in 2 3 4; do cut -d\; -f${field} list* | sort | uniq -d; done

相关内容