小编Pat*_*ick的帖子

Bash:在 X 列中保留所有具有重复值的行

我有一个包含几千行和 20 多列的文件。我现在只想保留第 3 列中与其他行具有相同电子邮件地址的行。

文件:(名字;姓氏;电子邮件;...)

Mike;Tyson;mike@tyson.com
Tom;Boyden;tom@boyden.com
Tom;Cruise;mike@tyson.com
Mike;Myers;mike@tyson.com
Jennifer;Lopez;jennifer@lopez.com
Andre;Agassi;tom@boyden.com
Paul;Walker;paul@walker.com
Run Code Online (Sandbox Code Playgroud)

我想保留所有具有匹配电子邮件地址的行。在这种情况下,预期的输出将是

Mike;Tyson;mike@tyson.com
Tom;Boyden;tom@boyden.com
Tom;Cruise;mike@tyson.com
Mike;Myers;mike@tyson.com
Andre;Agassi;tom@boyden.com
Run Code Online (Sandbox Code Playgroud)

如果我使用

awk -F';' '!seen[$3]++' file
Run Code Online (Sandbox Code Playgroud)

我将丢失电子邮件地址的第一个实例,在本例中为第 1 行和第 2 行,并且仅保留重复项。

有没有办法保留所有行?

bash awk

3
推荐指数
1
解决办法
115
查看次数

标签 统计

awk ×1

bash ×1