-2

In the table below, Remove duplicates and for some point of time say 12:06 only maximum count value should be displayed

3/12/2013 12:00 639 Count
3/12/2013 12:06 693 Count
3/12/2013 12:12 636 Count
3/12/2013 12:18 649 Count
3/12/2013 12:24 658 Count
3/12/2013 12:30 926 Count
3/12/2013 12:36 721 Count
3/12/2013 12:42 797 Count
3/12/2013 12:48 717 Count
3/12/2013 12:00 639 Count
3/12/2013 12:06 700 Count
3/12/2013 12:12 636 Count
3/12/2013 12:18 649 Count
3/12/2013 12:24 658 Count
3/12/2013 12:30 726 Count
3/12/2013 12:36 721 Count
3/12/2013 12:42 850 Count
3/12/2013 12:48 900 Count
3/12/2013 12:00 639 Count
3/12/2013 12:06 693 Count
3/12/2013 12:12 636 Count
3/12/2013 12:18 649 Count
3/12/2013 12:24 658 Count
3/12/2013 12:30 926 Count
3/12/2013 12:36 721 Count
3/12/2013 12:42 797 Count
3/12/2013 12:48 950 Count

Output should look like below:

3/12/2013 12:00 639 Count
3/12/2013 12:06 700 Count
3/12/2013 12:12 636 Count
3/12/2013 12:18 649 Count
3/12/2013 12:24 658 Count
3/12/2013 12:30 926 Count
3/12/2013 12:36 721 Count
3/12/2013 12:42 850 Count
3/12/2013 12:48 900 Count
Chris Seymour
  • 83,387
  • 30
  • 160
  • 202
user2162716
  • 5
  • 1
  • 3

1 Answers1

0

You want sort and uniq:

$ sort -k2,2 -rk3,3  file | uniq -w15 | sort -k2,2
3/12/2013 12:00 639     Count
3/12/2013 12:06 700     Count
3/12/2013 12:12 636     Count
3/12/2013 12:18 649     Count
3/12/2013 12:24 658     Count
3/12/2013 12:30 926     Count
3/12/2013 12:36 721     Count
3/12/2013 12:42 850     Count
3/12/2013 12:48 950     Count

Or with some awk:

$ awk '{if($3>a[$1" "$2])a[$1" "$2]=$3}END{for(k in a)print k,a[k],"\tCount"}' file | sort
3/12/2013 12:00 639     Count
3/12/2013 12:06 700     Count
3/12/2013 12:12 636     Count
3/12/2013 12:18 649     Count
3/12/2013 12:24 658     Count
3/12/2013 12:30 926     Count
3/12/2013 12:36 721     Count
3/12/2013 12:42 850     Count
3/12/2013 12:48 950     Count
Chris Seymour
  • 83,387
  • 30
  • 160
  • 202