Sort field by date mm/dd/yyyy


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Sort field by date mm/dd/yyyy
# 1  
Old 03-01-2010
Sort field by date mm/dd/yyyy

Hello Group,

I would like to sort the below file by date (first year then month and day) and I used the following command but it does not work

sort -n -t"/" -k3 -k1 -k2

"sample original file"
Code:
12/28/2009,1.0353
12/31/2009,1.0357
12/30/2009,1.0364
12/29/2009,1.0366
12/24/2009,1.0386
12/23/2009,1.0393
12/18/2009,1.0427
12/21/2009,1.0459
12/17/2009,1.0467
12/22/2009,1.0482

I really appreciate it youe help and support

Carlos

Last edited by radoulov; 03-01-2010 at 10:53 AM.. Reason: Please use code tags!
# 2  
Old 03-01-2010
Code:
$ sort -n -t"/" -k3 -k1 -k2 file
12/17/2009,1.0467
12/18/2009,1.0427
12/21/2009,1.0459
12/22/2009,1.0482
12/23/2009,1.0393
12/24/2009,1.0386
12/28/2009,1.0353
12/29/2009,1.0366
12/30/2009,1.0364
12/31/2009,1.0357

What do you mean by not working? What is your expected output?
# 3  
Old 03-01-2010
When I executed the command on my Ubuntu 9 the output is the following:

2/28/2009,1.0353
12/31/2009,1.0357
12/30/2009,1.0364
12/29/2009,1.0366
12/24/2009,1.0386
12/23/2009,1.0393
12/18/2009,1.0427
12/21/2009,1.0459
12/17/2009,1.0467
12/22/2009,1.0482
# 4  
Old 03-01-2010
Which is what is expected since the delimiter is / ... k3 field is for the first record:
2009,1.0353 , NOT 2009...
# 5  
Old 03-01-2010
Try
Code:
sort -n -t"," -k1.7,1.10 -k1.1,1.2 -k1.4,1.5 file

This only works, if the date is always exactly 10 characters long.
This User Gave Thanks to hergp For This Post:
# 6  
Old 03-01-2010
Tools Two different delimiters can be a pain

What about:
Code:
cat csierra.txt | tr "," "/" | sort -n -t"/" -k3 -k1 -k2 | gawk -F"/" '{print $1"/"$2"/"$3","$4}'

This User Gave Thanks to joeyg For This Post:
# 7  
Old 03-01-2010
It seems to be a bug caused by l10n/i18n, do
Code:
LC_ALL=C sort -n -t/ ...

This User Gave Thanks to binlib For This Post:
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. AIX

Sort by date field in AIX

I wanted to sort the below data on 4th field(comma seperator) based on month and date and time on AIX OS. Input data: 3,AJ,30 Jul 06:30,30 Jul 06:30 5,AJ,30 Jul 06:30,30 Jul 06:49 10,AJ,30 Jul 06:30,02 Jan 05:41 4,AJ,30 Jul 06:30,30 Jul 06:36 2,AJ,30 Jul 06:30,28 Jul 06:45 9,AJ,30 Jul... (2 Replies)
Discussion started by: Amit Joshi
2 Replies

2. UNIX for Dummies Questions & Answers

Epoch date to YYYY/MM/DD or MM/DD/YYYY

I've seen a lot of posts on this and have tried the following: echo 1257000000| perl -e '($d,$m,$y)=(localtime(time-86400));$m+=1;$y+=1900;printf "$y/$m/$d\n";' But I am unable to convert a past Epoch date into a format such as YYYY/MM/DD or MM/DD/YYYY. I am using bash and don't know... (4 Replies)
Discussion started by: newbie2010
4 Replies

3. Shell Programming and Scripting

Sorting Date Field with Sort -k :/

SOLVED : (17 Replies)
Discussion started by: Glitch100
17 Replies

4. Shell Programming and Scripting

Converting date DD MM YYYY to DD MON YYYY

Hello, I am writing a script that parses different logs and produces one. In the source files, the date is in DD MM YYYY HH24:MI:SS format. In the output, it should be in DD MON YYY HH24:MI:SS (ie 25 Jan 2010 16:10:10) To extract the dates, I am using shell substrings, i.e.: read line ... (4 Replies)
Discussion started by: Adamm
4 Replies

5. Shell Programming and Scripting

change date format from yyyy/mm/dd to dd/mm/yyyy

(Attention: Green PHP newbie !) I have an online inquiry form, delivering a date in the form yyyy/mm/dd to my feedback form. If the content passes several checks, the form sends an e-mail to me. All works fine. I just would like to receive the date in the form dd/mm/yyyy. I tried with some code,... (6 Replies)
Discussion started by: keyboarder
6 Replies

6. Shell Programming and Scripting

Sort two columns in a field, one of them being a date

Hi, I have a set of columns in a csv file, my first row being an integer and 2nd being a date. I want to first sort it using the first column and then by the second. for e.g. i have , 1234,09/05/2009,hi 5678,01/01/2008,hi 1234,11/03/2006,hello 5678,28/07/2010,hello i tried this... (5 Replies)
Discussion started by: sweta_doshi
5 Replies

7. Shell Programming and Scripting

converting the date field from dd/mm/yyyy to yyyy/mm/dd

How to convert the date field from dd/mm/yyyy to yyyy/mm/dd in unix my script will generate text file which have two fields one is date and another is name of the server for example this is sample date which I have to sort based on older to newer date the problem is when I found out sort will... (4 Replies)
Discussion started by: pareshan
4 Replies

8. Shell Programming and Scripting

Perl script to extract last date field (yyyy/mm/dd)

Hi Friends, I've a special requirement, even though I know how to implement this using shell scripting, current requirement is PERL, in which I'm not much familiar !!!. I've a record, which has around 200 fields, out of which I need to extract only one date value from the 97th field (this... (1 Reply)
Discussion started by: ganapati
1 Replies

9. Shell Programming and Scripting

How to Sort files on date field

:cool: Hi all, I have a pecular issue in sorting these files in Solaris environment. All the below files are modified on November 4th, but I want to sort these files as per date column (eg: 01May07_1623 = ddmmmyy_hhmm) Nov 4 18:27 SONYELEC00.GI22973.01May07_1623.gpg Nov 4 18:27... (4 Replies)
Discussion started by: shivaastrogun
4 Replies

10. Shell Programming and Scripting

Change Date from dd-mmm-yyyy to mm/dd/yyyy

I want to change a date from format dd-mmm-yyyy to mm/dd/yyyy. Is there a way to do this with sed or do you have to write a case statement to convert JAN to 01? Thanks (9 Replies)
Discussion started by: stringzz
9 Replies
Login or Register to Ask a Question