Sort Date YYYYDDD


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Sort Date YYYYDDD
# 1  
Old 10-24-2012
Sort Date YYYYDDD

Hello,

I am still in trouble to sort log file in order by date as (YYYYDDD).

INFO :
YYYY = Year
DDD = Day in the year 001 for 1st January


Here is Input

Code:
New File: 95106 Oct 21 TAG__SC___2000229_0.TAB
New File: 95040 Mar 29 TAG__KSM__2012023_0.TAB
New File: 95106 Oct 21 TAG__KG___2012229_0.TAB
New File: 83424 Oct 22 TAG__SC___2012230_0.TAB
New File: 79530 Oct 22 TAG__KG___2012293_0.TAB
New File: 79728 Oct 22 TAG__SC___2012293_0.TAB
New File: 95106 Oct 21 TAG__KSM__2001229_0.TAB
New File: 95106 Oct 21 TAG__KSO__2002229_0.TAB
New File: 83226 Oct 22 TAG__KSM__2012230_0.TAB
New File: 79530 Oct 22 TAG__KSM__2012293_0.TAB
New File: 79530 Oct 22 TAG__KSO__2012293_0.TAB
New File: 95106 Oct 23 TAG__KG___2007013_0.TAB

Output Needed

Code:
New File: 95106 Oct 21 TAG__SC___2000229_0.TAB
New File: 95106 Oct 21 TAG__KSM__2001229_0.TAB
New File: 95106 Oct 21 TAG__KSO__2002229_0.TAB
New File: 95106 Oct 23 TAG__KG___2007013_0.TAB
New File: 95040 Mar 29 TAG__KSM__2012023_0.TAB
New File: 95106 Oct 21 TAG__KG___2012229_0.TAB
New File: 83226 Oct 22 TAG__KSM__2012230_0.TAB
New File: 83424 Oct 22 TAG__SC___2012230_0.TAB
New File: 79530 Oct 22 TAG__KG___2012293_0.TAB
New File: 79728 Oct 22 TAG__SC___2012293_0.TAB
New File: 79530 Oct 22 TAG__KSM__2012293_0.TAB
New File: 79530 Oct 22 TAG__KSO__2012293_0.TAB

Thanks
# 2  
Old 10-24-2012
Try like...
Code:
sort -r test.txt

# 3  
Old 10-24-2012
Try:
Code:
perl -ne 'push @lines,$_;END{print sort {$a=~/_\d{7}_/;$x=$&;$b=~/_\d{7}_/;$y=$&;$x cmp $y} @lines}' input

# 4  
Old 10-24-2012
You need to sort according to some field but the sort key to start not at the first but another character. This can be done by a key definition using the "-k" switch of sort.

Notice that the indexing changes (0-based, 1-based) as you use or don't use the "-t" and the "-b" switches of "sort.

The following (not tested) should do what you want and at least you should be able to modify it to your needs:

Code:
<your list> | sort -k5.11,5.17 -k5

This sorts on the date part of the filename and - in case of equivalence - on the complete filename alphabetically. As the numbers involved are all zero-padded there is no difference between numeric and alphabetical sorting.

I hope this helps.

bakunin
# 5  
Old 10-24-2012
Dear bmk, dear bakunin

I am sorry but your code are not working as expected.

Don't worry I am not blaming you. I am blaming me to not be able to do it by myself. I did try with "SORT" but all my tests failed.

I am not strong enought to solved this on my own. Is there a way for SORT do do such job ?

PS : PERL is working fine but I would preferre to use some code that I could understand .. But thanks a lot at BARTUS11
# 6  
Old 10-24-2012
bakunin's solution is actually working, there is just small mistake in the field specification. It should be:
Code:
sort -k6.11,6.17 -k 6 input


Last edited by bartus11; 10-24-2012 at 11:08 AM..
# 7  
Old 10-24-2012
oops, my bad: i miscounted the fields, sorry.

bakunin
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Sort by name and date

nawk '$1=="Date" {d=$(NF-2);next} $1=="Queue" {q=$NF;next} $1=="Forms"{print q, $NF, d}' OFS='|' printfile.log I have this script working. Please let me know how to sort by Queue and then Date. (4 Replies)
Discussion started by: Daniel Gate
4 Replies

2. Shell Programming and Scripting

Sort help: How to sort collected 'file list' by date stamp :

Hi Experts, I have a filelist collected from another server , now want to sort the output using date/time stamp filed. - Filed 6, 7,8 are showing the date/time/stamp. Here is the input: #---------------------------------------------------------------------- -rw------- 1 root ... (3 Replies)
Discussion started by: rveri
3 Replies

3. Shell Programming and Scripting

sort the date

Hi All, Please help me to sort the date field which is in the format 2012-02-03 16:09:37.388... Platform: Red Hat linux Thanks in advance (2 Replies)
Discussion started by: jesu
2 Replies

4. UNIX for Dummies Questions & Answers

how to combine du -h and sort by date

The problem: I have a task to give a my boss: 1. the files and directory sizes in human readable form: du -h 2. He also wants me to give him the date stamp on the files and directories. something like ls -R or sort by date Does anyone have a script that can do this efficiently (I am... (2 Replies)
Discussion started by: obology
2 Replies

5. UNIX for Dummies Questions & Answers

Sort comand for Date

Hi All, I have two questions for sorting based on date. Sample input: 2009/07/23 11:48:44|alpha 2009/07/23 11:48:44|gamme 2009/07/23 11:48:44|beta 2009/07/23 11:48:44|test 2009/07/23 11:48:44|data 2009/07/23 11:48:44|hello 2009/07/23 11:48:44|cat Output: 2009/07/23... (3 Replies)
Discussion started by: quintet
3 Replies

6. Shell Programming and Scripting

sort date issue

Hi Everyone, # cat b Sat 12 Sep 2009 10:31:49 PM MYT;a;a;a;Sun 13 Sep 2009 11:32:49 AM MYT; Sat 13 Sep 2009 10:31:49 PM MYT;a;a;a;Mon 14 Sep 2009 10:31:49 PM MYT; Sat 14 Sep 2009 10:31:49 PM MYT;a;a;a;Sun 13 Sep 2009 10:31:49 PM MYT; # sort -t';' -k5 b Sat 13 Sep 2009 10:31:49 PM... (8 Replies)
Discussion started by: jimmy_y
8 Replies

7. Shell Programming and Scripting

how to sort by the date

Hello World~ Please Help Me(BASH) input: dde,2007.8.25,891 dde,2007.8.23,356 dfe,2007.10.12,341 cba,2005.12.5,342 I wanna know how to sort by the date(2005.12.5) output: cba,2005.12.5,342 dde,2007.8.23,356 dde,2007.8.25,891 dfe,2007.10.12,341 Thanks in advance (3 Replies)
Discussion started by: lifegeek
3 Replies

8. Linux

sort files by date

Hi All, Sorry to throw this frequent question but I lost my notes on it. How do you list the files by date? I'm on red hat. Thanks in advance, itik (1 Reply)
Discussion started by: itik
1 Replies

9. UNIX for Dummies Questions & Answers

sort by date and concatenate first three

Hi: I am trying to create some script that sorts the files in a subdirectory by date and concatenates the thre most recently created files. SAy, file1 date1 file2 date2 file3 date3 file4 date4 file5 date5 file6 date6 i only want to concatenate the first three which are the most... (4 Replies)
Discussion started by: jlarios
4 Replies

10. Shell Programming and Scripting

Sort by Date

I'm looking to edit a file which contains various data including date.(ddmmyyyy) I want to sort by date and then count the number of different dates found Any ideas how to acheive this Thanks in advance. (2 Replies)
Discussion started by: Mudshark
2 Replies
Login or Register to Ask a Question