一尘不染

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

linux

我有一个.csv文件,如下所示:

stack2@example.com,2009-11-27 01:05:47.893000000,example.net,127.0.0.1
overflow@example.com,2009-11-27 00:58:29.793000000,example.net,255.255.255.0
overflow@example.com,2009-11-27 00:58:29.646465785,example.net,256.255.255.0
...

我必须从文件中删除重复的电子邮件(整行)(即overflow@example.com,上面示例中包含的行之一)。如何uniq仅在字段1(用逗号分隔)上使用?根据manuniq没有列选项。

我尝试了一些东西,sort | uniq但是没有用。


阅读 224

收藏
2020-06-02

共1个答案

一尘不染

sort -u -t, -k1,1 file
  • -u 为了独特
  • -t, 所以逗号是定界符
  • -k1,1 对于关键字段1

测试结果:

overflow@domain2.com,2009-11-27 00:58:29.793000000,xx3.net,255.255.255.0 
stack2@domain.com,2009-11-27 01:05:47.893000000,xx2.net,127.0.0.1
2020-06-02