Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Eliminate partially duplicate lines by column and keep the last one

Tags:

I have a file that looks like this:

2011-03-21 name001 line1 2011-03-21 name002 line2 2011-03-21 name003 line3 2011-03-22 name002 line4 2011-03-22 name001 line5 

for each name, I only want its last appearance. So, I expect the result to be:

2011-03-21 name003 line3 2011-03-22 name002 line4 2011-03-22 name001 line5 

Could someone give me a solution with bash/awk/sed?

like image 442
Dagang Avatar asked Mar 25 '11 07:03

Dagang


People also ask

How do I remove duplicate rows and keep the highest value only?

1. If you want to remove all duplicates but leave the highest ones, you can apply this formula =MAX(IF($A$2:$A$12=D2,$B$2:$B$12)), remember to press Shift + Ctrl + Enter keys. 2. In the above formulas, A2:A12 is the original list you need to remove duplicates from.


1 Answers

This code get uniq lines by second field but from the end of file or text (like in your result example)

tac temp.txt | sort -k2,2 -r -u 
like image 116
PaulP Avatar answered Nov 14 '22 08:11

PaulP