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


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Sort help: How to sort collected 'file list' by date stamp :
# 1  
Old 03-29-2013
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:

Code:
#----------------------------------------------------------------------
-rw-------   1 root       root        304182 Feb 12 18:09 /etc/cmconfig
-rw-------   1 root       root        194056 Feb 12 17:41 /etc/cmconfig
-rw-------   1 root       sys         125844 Oct 14 17:57 /etc/cmconfig
-rw-------   1 root       sys         131010 Oct 14 17:57 /etc/cmconfig
-rw-------   1 root       sys         131010 Oct 14 17:58 /etc/cmconfig
-rw-------   1 root       dba         468206 Feb 12 17:54 /etc/cmconfig
-rw-------   1 root       sys         327604 Jan 20 16:36 /etc/cmconfig
-rw-------   1 root       sys         428022 Jan 28 16:19 /etc/cmconfig
-rw-------   1 root       sys         554778 Jan 28 16:18 /etc/cmconfig
-rw-------   1 root       sys           3122 Dec  6 16:09 /etc/cmconfig
-rw-------   1 root       sys         955244 Dec  5 16:42 /etc/cmconfig
-rw-------   1 root       root        294330 Aug 20 15:58 /etc/cmconfig
-rw-------   1 root       users       295384 Aug 20 15:57 /etc/cmconfig
-rw-------   1 root       users       295384 Aug 20 15:57 /etc/cmconfig
-rw-------   1 root       root        177074 Jan  2 15:13 /etc/cmconfig
-rw-------   1 root       root         53754 Feb 11 14:10 /etc/cmconfig
-rw-------   1 root       sys          16512 Sep 26 14:11 /etc/cmconfig
-rw-------   1 root       root         46532 Oct 22 13:45 /etc/cmconfig
-rw-------   1 root       root        121888 Oct 22 13:47 /etc/cmconfig
-rw-------   1 root       root        223998 Feb  9 11:31 /etc/cmconfig
-rw-------   1 root       root        282906 Feb 10 10:17 /etc/cmconfig
-rw-------   1 root       root        167484 Feb 10 10:24 /etc/cmconfig
-rw-------   1 root       root        183984 Feb  9 10:43 /etc/cmconfig
-rw-------   1 root       sys          18620 Sep 26 10:15 /etc/cmconfig
-rw-------   1 root       sys         415972 Feb  4 09:30 /etc/cmconfig
-rw-------   1 root       sys           3122 Dec 12 09:04 /etc/cmconfig
-rw-------   1 root       users       424208 Dec  6 09:59 /etc/cmconfig
-rw-------   1 root       users       423180 Dec  6 09:54 /etc/cmconfig
-rw-------   1 root       users       423180 Dec  6 09:53 /etc/cmconfig
-rw-------   1 root       sys         423180 Dec  6 09:52 /etc/cmconfig
-rw-------   1 root       sys          20624 Feb  4 08:59 /etc/cmconfig
-rw-------   1 root       root         71022 Nov 19 08:25 /etc/cmconfig
-rw-------   1 root       sys         184478 Jan 29 08:20 /etc/cmconfig
-rw-------   1 root       sys         431432 Oct 18 08:42 /etc/cmconfig
#----------------------------------------------------------------------





Want the output like this:

Code:
-rw-------   1 root       root        177074 Jan  2 15:13 /etc/cmconfig
-rw-------   1 root       sys         327604 Jan 20 16:36 /etc/cmconfig
-rw-------   1 root       sys         428022 Jan 28 16:19 /etc/cmconfig
-rw-------   1 root       sys         554778 Jan 28 16:18 /etc/cmconfig
-rw-------   1 root       sys         184478 Jan 29 08:20 /etc/cmconfig
-rw-------   1 root       sys         415972 Feb  4 09:30 /etc/cmconfig
-rw-------   1 root       root        223998 Feb  9 11:31 /etc/cmconfig


Thanks.,
# 2  
Old 03-29-2013
Try this

Code:
awk 'BEGIN{mon["Jan"]=1;mon["Feb"]=2;mon["Mar"]=3;mon["Apr"]=4;mon["May"]=5;mon["Jun"]=6;mon["Jul"]=7;mon["Aug"]=8;mon["Sep"]=9;mon["Oct"]=10;mon["Nov"]=11;mon["Dec"]=12;} 
{ split($8, hhmm, /:/); format="2012 "mon[$6]" "$7" "hhmm[1]" "hhmm[2]" 00 00"; t=mktime(format); a[t]=$0; b[++j]=t; } 
END{n=asort(b); for(i=1;i<=n;i++){print a[b[i]]}}' input_file

--ahamed

---------- Post updated at 04:51 PM ---------- Previous update was at 04:49 PM ----------

Updated the code : there was a syntax error.

--ahamed
This User Gave Thanks to ahamed101 For This Post:
# 3  
Old 03-29-2013
Hi rveri,
By what logic were the following lines deleted from your input file:
Code:
#----------------------------------------------------------------------
-rw-------   1 root       users       295384 Aug 20 15:57 /etc/cmconfig
-rw-------   1 root       users       295384 Aug 20 15:57 /etc/cmconfig
-rw-------   1 root       root        294330 Aug 20 15:58 /etc/cmconfig
-rw-------   1 root       sys          18620 Sep 26 10:15 /etc/cmconfig
-rw-------   1 root       sys          16512 Sep 26 14:11 /etc/cmconfig
-rw-------   1 root       sys         125844 Oct 14 17:57 /etc/cmconfig
-rw-------   1 root       sys         131010 Oct 14 17:57 /etc/cmconfig
-rw-------   1 root       sys         131010 Oct 14 17:58 /etc/cmconfig
-rw-------   1 root       sys         431432 Oct 18 08:42 /etc/cmconfig
-rw-------   1 root       root         46532 Oct 22 13:45 /etc/cmconfig
-rw-------   1 root       root        121888 Oct 22 13:47 /etc/cmconfig
-rw-------   1 root       root         71022 Nov 19 08:25 /etc/cmconfig
-rw-------   1 root       sys         955244 Dec  5 16:42 /etc/cmconfig
-rw-------   1 root       sys         423180 Dec  6 09:52 /etc/cmconfig
-rw-------   1 root       users       423180 Dec  6 09:53 /etc/cmconfig
-rw-------   1 root       users       423180 Dec  6 09:54 /etc/cmconfig
-rw-------   1 root       users       424208 Dec  6 09:59 /etc/cmconfig
-rw-------   1 root       sys           3122 Dec  6 16:09 /etc/cmconfig
-rw-------   1 root       sys           3122 Dec 12 09:04 /etc/cmconfig
-rw-------   1 root       sys          20624 Feb  4 08:59 /etc/cmconfig
-rw-------   1 root       root        183984 Feb  9 10:43 /etc/cmconfig
-rw-------   1 root       root        282906 Feb 10 10:17 /etc/cmconfig
-rw-------   1 root       root        167484 Feb 10 10:24 /etc/cmconfig
-rw-------   1 root       root         53754 Feb 11 14:10 /etc/cmconfig
-rw-------   1 root       root        194056 Feb 12 17:41 /etc/cmconfig
-rw-------   1 root       dba         468206 Feb 12 17:54 /etc/cmconfig
-rw-------   1 root       root        304182 Feb 12 18:09 /etc/cmconfig
#----------------------------------------------------------------------

If you are sorting by increasing values of date and time, by what logic should the line:
Code:
-rw-------   1 root       sys         554778 Jan 28 16:18 /etc/cmconfig

appear after the line:
Code:
-rw-------   1 root       sys         428022 Jan 28 16:19 /etc/cmconfig

in your wanted output?

Last edited by Don Cragun; 03-29-2013 at 09:37 PM.. Reason: fix typo
# 4  
Old 03-29-2013
Don,
That was a mistake trying to get the lines sorted manualy by copy paste:

Code:
-rw-------   1 root       sys         428022 Jan 28 16:19 /etc/cmconfig
-rw-------   1 root       sys         554778 Jan 28 16:18 /etc/cmconfig

should be

Code:
-rw-------   1 root       sys         554778 Jan 28 16:18 /etc/cmconfig
-rw-------   1 root       sys         428022 Jan 28 16:19 /etc/cmconfig




So the output wanted is as below: (corrected now):

Code:
-rw-------   1 root       root        177074 Jan  2 15:13 /etc/cmconfig
-rw-------   1 root       sys         327604 Jan 20 16:36 /etc/cmconfig
-rw-------   1 root       sys         554778 Jan 28 16:18 /etc/cmconfig
-rw-------   1 root       sys         428022 Jan 28 16:19 /etc/cmconfig
-rw-------   1 root       sys         184478 Jan 29 08:20 /etc/cmconfig
-rw-------   1 root       sys         415972 Feb  4 09:30 /etc/cmconfig
-rw-------   1 root       root        223998 Feb  9 11:31 /etc/cmconfig

Sorry for the confusion that had with the wrong desired output.

- Ahamed Thanks a lot , ll try and update.

---------- Post updated at 10:12 PM ---------- Previous update was at 09:19 PM ----------

Ahamed, your code works awesome, and like charm,
Thanks a lot.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Help with sort list of file based on similarity

Input file (long list of input file): s_1_1_AABCD.txt s_1_1_ABADA.txt s_1_1_DSCBA.txt s_1_1_DSCCA.txt s_1_1_EATTG.txt s_1_1_FADSD.txt s_1_1_TGACC.txt s_1_1_TTAGG.txt s_1_2_AABCD.txt s_1_2_ABADA.txt s_1_2_DSCBA.txt s_1_2_DSCCA.txt s_1_2_EATTG.txt s_1_2_FADSD.txt ... (1 Reply)
Discussion started by: perl_beginner
1 Replies

2. UNIX for Dummies Questions & Answers

List directories with given string, sort by creation date

It is for HP-Unix B.11.31. Requirement: 1. List the directories, which directories name has given particular string. Example: Directories with name "Build" 2. On the output of 1. list the directories by creation date as sort order. I tried with; find . -type d -name "Build*" ... (3 Replies)
Discussion started by: Siva SQL
3 Replies

3. Shell Programming and Scripting

Is it Possible to sort a list of hexadecimal numbers using "sort" command?

Hello Everybody :) !!!. i have question in mind, is it possible to sort a list of hexadecimal numbers using "sort" command? (9 Replies)
Discussion started by: Kesavan
9 Replies

4. UNIX for Advanced & Expert Users

Script to sort the files and append the extension .sort to the sorted version of the file

Hello all - I am to this forum and fairly new in learning unix and finding some difficulty in preparing a small shell script. I am trying to make script to sort all the files given by user as input (either the exact full name of the file or say the files matching the criteria like all files... (3 Replies)
Discussion started by: pankaj80
3 Replies

5. Shell Programming and Scripting

shell script to sort entries in a file by date and time

Hello All, Need a shell script to sort entries in a file by date and time. Below are the entries in the file, i need to sort it first by the date and then time Note :- Date is in MM/DD/YY format and date comes as the 6th & time comes on 7th coloumns respectively. 150 pbnawldb001-b... (10 Replies)
Discussion started by: ajiwww
10 Replies

6. Shell Programming and Scripting

Sort content of text file based on date?

I now have a 230,000+ lines long text file formatted in segments like this: Is there a way to sort this file to have everything in chronological order, based on the date and time in the text? In this example, I would like the result to be: (19 Replies)
Discussion started by: KidCactus
19 Replies

7. Shell Programming and Scripting

How to sort a field in a file having date values

Hi All, I am having a pipe delimited file .In this file the 3rd column is having date values.I need to get the min date and max date from that file. I have used cut -d '|' test.dat -f 3|sort -u But it is not sorting the date .How to sort the date column using unix commands Thanks ... (4 Replies)
Discussion started by: risshanth
4 Replies

8. Shell Programming and Scripting

how to sort paragraphs by date within a file

hi all i want help in sortng date in paragraphs within file , i want to ask as if there any option to sort a certain pattern of file not the rest of file.i.e the data of file become sorted with respect to date i have a log file as follows !! *A0628/081 /08-01-10/13 H... (1 Reply)
Discussion started by: nabmufti
1 Replies

9. AIX

loop through the directory for files and sort by date and process the first file

hello i have a requirement where i have a direcotry in which i get files in the format STOCKS.20080114.dat STOCKS.20080115.dat STOCKS.20080117.dat STOCKS.20080118.dat i need to loop through the directory and sort by create date descending order and i need to process the first file. ... (1 Reply)
Discussion started by: dsdev_123
1 Replies

10. Shell Programming and Scripting

sort a file by date using perl

Hello, do any body help me to sort a file by date using perl? thanks in advance Esham (4 Replies)
Discussion started by: esham
4 Replies
Login or Register to Ask a Question

Featured Tech Videos