Get last date from file

Hi All

I've a file which has date fields and i'm trying to get the last date from the file.

I tried sort option sort -k9 login.txt to get the files sorted based on the user

[Mar 20, 2012 2:45:18 PM]: Saved the user test1 to Planning
[Mar 20, 2012 2:53:46 PM]: Saved the user test1 to Planning
[Mar 22, 2012 12:25:16 PM]: Saved the user test1 to Planning
[Mar 14, 2012 2:56:48 AM]: Saved the user test2 to Planning
[Mar 14, 2012 2:57:04 AM]: Saved the user test2 to Planning
[Mar 14, 2012 2:59:03 AM]: Saved the user test2 to Planning

The expected output is

[Mar 22, 2012 12:25:16 PM]: Saved the user test1 to Planning
[Mar 14, 2012 2:59:03 AM]: Saved the user test2 to Planning

After this i tried the uniq -f1 option but it didn't give the last date line.

Can someone help me with this?

I tried in this way, and I got the expected results.
It is basic but it is working :slight_smile:

 
[user@server tempo]$ cat tot.txt
[Mar 20, 2012 2:45:18 PM]: Saved the user test1 to Planning
[Mar 20, 2012 2:53:46 PM]: Saved the user test1 to Planning
[Mar 22, 2012 12:25:16 PM]: Saved the user test1 to Planning
[Mar 14, 2012 2:56:48 AM]: Saved the user test2 to Planning
[Mar 14, 2012 2:57:04 AM]: Saved the user test2 to Planning
[Mar 14, 2012 2:59:03 AM]: Saved the user test2 to Planning
[user@server tempo]$ cat tot.txt | sort -n
[Mar 14, 2012 2:56:48 AM]: Saved the user test2 to Planning
[Mar 14, 2012 2:57:04 AM]: Saved the user test2 to Planning
[Mar 14, 2012 2:59:03 AM]: Saved the user test2 to Planning
[Mar 20, 2012 2:45:18 PM]: Saved the user test1 to Planning
[Mar 20, 2012 2:53:46 PM]: Saved the user test1 to Planning
[Mar 22, 2012 12:25:16 PM]: Saved the user test1 to Planning
[user@server tempo]$ cat tot.txt | sort -n | grep test1
[Mar 20, 2012 2:45:18 PM]: Saved the user test1 to Planning
[Mar 20, 2012 2:53:46 PM]: Saved the user test1 to Planning
[Mar 22, 2012 12:25:16 PM]: Saved the user test1 to Planning
[user@server tempo]$ cat tot.txt | sort -n | grep test1 | tail -1
[Mar 22, 2012 12:25:16 PM]: Saved the user test1 to Planning
[user@server tempo]$ cat tot.txt | sort -n | grep test2 | tail -1
[Mar 14, 2012 2:59:03 AM]: Saved the user test2 to Planning
[user@server tempo]$
 

Hi Hammadi dali

Thank you for your help, but i can't grep on user names, because that is a dynamic field and I won't be knowing all the users.

$ awk '{a[$9]=$0;next}END{for (i in a){print a}}' input.txt
[Mar 22, 2012 12:25:16 PM]: Saved the user test1 to Planning
[Mar 14, 2012 2:59:03 AM]: Saved the user test2 to Planning

Try:

sed -n '1!G;h;$p' login.txt | sort -uk9,9

or

tac login.txt | sort -uk9,9
1 Like

Hi

Thank you Scrutinizer and itkamaraj for your help.

I tried Scrutinizer's solution and it worked.:b: