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
Post a Comment