为了账号安全,请及时绑定邮箱和手机立即绑定

有没有一种方法可以按列进行“ uniq”处理?

有没有一种方法可以按列进行“ uniq”处理?

catspeake 2019-11-05 16:20:59
我有一个.csv文件,如下所示:stack2@example.com,2009-11-27 01:05:47.893000000,example.net,127.0.0.1overflow@example.com,2009-11-27 00:58:29.793000000,example.net,255.255.255.0overflow@example.com,2009-11-27 00:58:29.646465785,example.net,256.255.255.0...我必须从文件中删除重复的电子邮件(整行)(即overflow@example.com,上面示例中包含的行之一)。如何uniq仅在字段1(用逗号分隔)上使用?根据man,uniq没有列选项。我尝试了一些东西,sort | uniq但是没有用。
查看完整描述

3 回答

?
精慕HU

TA贡献1845条经验 获得超8个赞

awk -F"," '!_[$1]++' file

-F 设置字段分隔符。

$1 是第一个领域。

_[val]val在哈希_(常规变量)中查找。

++ 增加,并返回旧值。

! 返回逻辑非。

最后有一个隐式打印。


查看完整回答
反对 回复 2019-11-05
?
婷婷同学_

TA贡献1844条经验 获得超8个赞

要考虑多列。


根据第1列和第3列排序并给出唯一列表:


sort -u -t : -k 1,1 -k 3,3 test.txt

-t : 冒号是分隔符

-k 1,1 -k 3,3 基于第1列和第3列


查看完整回答
反对 回复 2019-11-05
  • 3 回答
  • 0 关注
  • 831 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信