shell - sort duplicates date wise -


i have file two-column elements(id , date). want sort elements depending on id, , in case several elements have same id, sorted depending on dates.

i used sort -t" " -k2 -t"/" -k3 -k2 -k1 file.txt didn't work. don't know how use filed separator.

input file

01/02/2012 1 02/03/2012 1 04/04/2012 1 01/02/2015 2 02/03/2014 2 04/04/2013 2 

and output file should :

01/02/2012 1                                                                                                                                                                                       02/03/2012 1                                                                                                                                                                                       04/04/2012 1                                                                                                                                                                                      04/04/2013 2                                                                                                                                                                                       02/03/2014 2                                                                                                                                                                                      01/02/2015 2 

idea: try use one field separator (sort doesn't handle 2 or more different separators).

$  cat file                                                                                                                                01/02/2012 1                                                                                                                                         02/03/2012 1                                                                                                                                         04/04/2012 1                                                                                                                                         01/02/2015 2                                                                                                                                         02/03/2014 2                                                                                                                                         04/04/2013 2 $  sed 's, ,/,' file | sort -t '/' -k4 -k3 -k2 -k1 | sed 's,\(.*\)/\([^/]*\),\1 \2,'                                                       01/02/2012 1                                                                                                                                         02/03/2012 1                                                                                                                                         04/04/2012 1                                                                                                                                         04/04/2013 2                                                                                                                                         02/03/2014 2                                                                                                                                         01/02/2015 2 

the first sed replace space character / sort / separator , next sed replace last / space.

i don't know date format dd/mm/yyyy or mm/dd/yyyy or maybe want repace -k4 -k3 -k2 -k1 -k4 -k3 -k1 -k2 in sort (i assume first version).


Comments

Popular posts from this blog

ubuntu - PHP script to find files of certain extensions in a directory, returns populated array when run in browser, but empty array when run from terminal -

php - How can i create a user dashboard -

javascript - How to detect toggling of the fullscreen-toolbar in jQuery Mobile? -