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
[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.