linuxshellsortinguniq

Is there a way to 'uniq' by column?


I have a .csv file like this:

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

I have to remove duplicate e-mails (the entire line) from the file (i.e. one of the lines containing overflow@domain2.example in the above example). How do I use uniq on only field 1 (separated by commas)? According to man, uniq doesn't have options for columns.

I tried something with sort | uniq but it doesn't work.


Solution

  • sort -u -t, -k1,1 file
    

    Test result:

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