Sort date time in ascending order


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Sort date time in ascending order
# 1  
Old 11-18-2013
Code Sort date time in ascending order

Hi,

i had a data block (coming from pipe from other codes) as:
Code:
H  YF_CO.dat  77164  11/17/2013 04:00:02  731374590.96  1  1  731374590.96  76586  77164  578  2988  Y
H  YF_CO.dat  77164  11/17/2013 04:00:07  731374590.96  1  4  731374590.96  76586  77164  578  2988  Y
H  YF_CO.dat  77178  11/17/2013 04:00:07  731374590.96  2  4  731374590.96  76600  77178  578  3002  Y
H  YF_CO.dat  77178  11/17/2013 04:00:08  731374590.96  2  4  731374590.96  76600  77178  578  3002  Y
H  YF_CO.dat  77178  11/17/2013 04:15:11  731374590.96  2  4  731374590.96  76600  77178  578  3002  Y
H  YF_CO.dat  77195  11/16/2013 04:15:20  731374590.96  3  4  731374590.96  76617  77195  578  3019  Y
H  YF_CO.dat  77195  11/15/2013 04:00:08  731374590.96  3  4  731374590.96  76617  77195  578  3019  Y
H  YF_CO.dat  76444  11/17/2013 04:20:08  713606875.00  1  1  713606875.00  75822  76444  622  3310  Y

i wanted to sort the records along 4th and 5th column in ascending order of date and time using sort(or any other in that matter). I came a long way thru my code only at the end to realize that the way i am using sort ( sort -nk 5, i didn't try to sort the date but would be great if i cud take that into account too ) does not give me desired result. My constraint is that the solution must be as small as possible( great if i can use it to get input from a pipe and redirect to a text file) so that my already sizable code doesn't grow larger. I am using ksh shell in Solaris. I would appreciate any help in that matter.

Thanks
# 2  
Old 11-18-2013
Try this
Code:
sort -k 4,5 your_file

or this (if you want to use a pipe)
Code:
... | sort -k 4,5

# 3  
Old 11-18-2013
Code:
while read line
do 
echo -n "$line ";date -d "`echo $line | cut -d " " -f4,5`" '+%s'
done < filename | sort -n -k15 | awk 'NF=14'

# 4  
Old 11-18-2013
Make it
Code:
sort -k4.7,4.11 -k4,5 file

to be safe when crossing year end.
This User Gave Thanks to RudiC For This Post:
# 5  
Old 11-18-2013
Data seems to contain leading blanks so sort should probably include -b:

Code:
sort -b -k4.7,4.10 -k4,5

These 2 Users Gave Thanks to Chubler_XL For This Post:
# 6  
Old 11-18-2013
Quote:
Originally Posted by Chubler_XL
Data seems to contain leading blanks so sort should probably include -b:

Code:
sort -b -k4.7,4.10 -k4,5

-b ignores leading blanks, but, because of -k4,5, that sort is needlessly sensitive to the number of blanks between fields 4 and 5.

A more flexible approach:
Code:
sort -b -k4.7,4 -k4,4.5 -k5

Regards,
Alister
This User Gave Thanks to alister For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

List numerically in ascending order

Hello, I am running ubuntu 16.04 and trying to list all files inside a directory, I need to sort them in ascending order. While surfing on the site, I found an old thread but somehow it did not work. Link Ascending order with sort -nk2 myfile.txt command gives below output: file... (5 Replies)
Discussion started by: baris35
5 Replies

2. Shell Programming and Scripting

File in ascending order by row

Hi All I have a file like this: ID1 ref_A 10 ref_B 30 ref_C 5 ID2 ref_F 69 ref_G 12 ref_H 5 Every ID is followed by a string(ref_X) followed by a number(every number is referred to the previous ref) I would like to order the file like this(the column could be more, but always with the same... (4 Replies)
Discussion started by: giuliangiuseppe
4 Replies

3. Shell Programming and Scripting

How to list files in ascending order?

Hi, I need to list files in ascending order. Filenames are in format inpTDT_1, inpTDT_2, inpTDT_3 and so on. I want to list them in the ascending order based on the digit after underscore and send the output to a file. Please help (5 Replies)
Discussion started by: Neelkanth
5 Replies

4. UNIX for Dummies Questions & Answers

Strings in ascending order

Hi, I have a sequence which has 30000 strings which looks like this >string2991 234445 >string224 470561 >string121 675386 >string4098 177229 >string8049 255838 >string8 672382 >string1115 578415 I want it to be arranged in ascending order >string8 672382 >string121... (5 Replies)
Discussion started by: siya@
5 Replies

5. UNIX for Dummies Questions & Answers

How to sort a column based on numerical ascending order if it includes e-10?

I have a column of numbers in the following format: 1.722e-05 2.018e-05 2.548e-05 2.747e-05 7.897e-05 4.016e-05 4.613e-05 4.613e-05 5.151e-05 5.151e-05 5.151e-05 6.1e-05 6.254e-05 7.04e-05 7.12e-05 7.12e-05 (6 Replies)
Discussion started by: evelibertine
6 Replies

6. Shell Programming and Scripting

Ascending order

How can I check if array is in ascending order? ---------- Post updated at 01:53 PM ---------- Previous update was at 01:25 PM ---------- Done it now (0 Replies)
Discussion started by: kristinu
0 Replies

7. Linux

Using sort command to get numeric ascending order

HI everyone, I am trying to use the unix sort command to get a list of numbers sorted in ascending order but having trouble in getting it to work. An example of this issue would be when i am trying to sort the following three number each on a different line "1" , "2" and "116" the sort command... (3 Replies)
Discussion started by: wali4813
3 Replies

8. UNIX for Advanced & Expert Users

merge two files in ascending order

Hello Friends, I want to merge two files in ascending order on the first field. And if the first field matches sort on 3rd field i.e, TXADDR should come ahead of RXADDR . file1 9 : TXADDR : 00000000 65 : TXDATA 0000000000000011 83 : TXDATA 0000000000000012 453 :... (10 Replies)
Discussion started by: user_prady
10 Replies

9. Shell Programming and Scripting

Ascending order within text

I appreciate all the help that I've already received but am running into one problem. I can find how to add something before a file with ascending numbers but not like this. I basically have a file that looks like this: 100 101 102 103 104 I need to add the following before each line with... (5 Replies)
Discussion started by: kerpm
5 Replies

10. UNIX for Dummies Questions & Answers

Sort / ascending order

What's the command to sort a file in ascending order and redirect the output to another file? Thanks!!!!!! (1 Reply)
Discussion started by: gyik
1 Replies
Login or Register to Ask a Question