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 CertNPI20 Airpark_Prod_SQL_Diff Airpark-Prod-SQL-Inc-Application-Backup 02/28/11 20:06:26
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 03/02/11 04:10:15
6 ixtarchive-b IXT Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 03/01/11 18:32:58
150 pbnawldb001-b CertNPI20 Airpark_Prod_SQL_Diff Airpark-Prod-SQL-Inc-Application-Backup 02/27/11 11:06:26
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 03/03/11 07:10:15

Thanks in advance

Welcome to the forum.

Will this work?

sort -k6.7,6.8 -k6.1,6.2 -k6.4,6.5 -k7.1,7.2 -k7.4,7.5 -k7.7,7.8 < file

o/p:

150 pbnawldb001-b CertNPI20 Airpark_Prod_SQL_Diff Airpark-Prod-SQL-Inc-Application-Backup 02/27/11 11:06:26
150 pbnawldb001-b CertNPI20 Airpark_Prod_SQL_Diff Airpark-Prod-SQL-Inc-Application-Backup 02/28/11 20:06:26
6 ixtarchive-b IXT Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 03/01/11 18:32:58
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 03/02/11 04:10:15
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 03/03/11 07:10:15

Thanks for the code, its working on the file. But the another file with same format, its not working

# cat test1
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 01/02/11 04:10:15
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 01/03/11 05:10:15
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 01/04/11 01:10:15
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 01/05/11 06:10:15
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 01/06/11 03:10:15
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 01/01/11 02:10:15
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 06/02/11 04:13:15
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 04/02/11 04:12:15
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 05/02/11 04:10:15
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 02/02/11 04:14:15
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 03/02/11 04:16:15
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 01/02/11 04:11:15
# sort -k6.7,6.8 -k6.1,6.2 -k6.4,6.5 -k7.1,7.2 -k7.4,7.5 -k7.7,7.8 test1
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 01/01/11 02:10:15
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 01/02/11 04:10:15
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 01/02/11 04:11:15
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 01/03/11 05:10:15
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 01/04/11 01:10:15
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 01/05/11 06:10:15
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 01/06/11 03:10:15
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 02/02/11 04:14:15
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 03/02/11 04:16:15
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 04/02/11 04:12:15
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 05/02/11 04:10:15
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 06/02/11 04:13:15

could you please also post the require output.

# cat test
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 09/30/11 11:80:82
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 05/22/11 06:22:45
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 11/32/11 33:92:99
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 02/11/11 04:11:22
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 01/01/10 02:00:10
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 02/02/10 04:01:11
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 07/29/11 08:44:77
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 03/12/11 05:12:33
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 04/21/11 06:20:40
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 10/31/11 11:91:95
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 08/30/11 08:66:80
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 06/28/11 07:40:65

DESIRED OUTPUT

6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 01/01/10 02:00:10
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 02/02/10 04:01:11
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 02/11/11 04:11:22
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 03/12/11 05:12:33
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 04/21/11 06:20:40
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 05/22/11 06:22:45
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 06/28/11 07:40:65
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 07/29/11 08:44:77
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 08/30/11 08:66:80
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 09/30/11 11:80:82
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 10/31/11 11:91:95
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 11/32/11 33:92:99

Its working for me.

$ sort -k6.7,6.8 -k6.1,6.2 -k6.4,6.5 -k7.1,7.2 -k7.4,7.5 -k7.7,7.8 < f
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 01/01/10 02:00:10
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 02/02/10 04:01:11
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 02/11/11 04:11:22
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 03/12/11 05:12:33
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 04/21/11 06:20:40
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 05/22/11 06:22:45
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 06/28/11 07:40:65
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 07/29/11 08:44:77
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 08/30/11 08:66:80
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 09/30/11 11:80:82
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 10/31/11 11:91:95
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 11/32/11 33:92:99
$ 
$ 
$ cat f
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 09/30/11 11:80:82
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 05/22/11 06:22:45
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 11/32/11 33:92:99
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 02/11/11 04:11:22
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 01/01/10 02:00:10
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 02/02/10 04:01:11
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 07/29/11 08:44:77
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 03/12/11 05:12:33
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 04/21/11 06:20:40
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 10/31/11 11:91:95
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 08/30/11 08:66:80
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 06/28/11 07:40:65
$ 

Sorry if I am unable to find the difference.

i was able to find out the code

# sort -k  6.8,6.9 -k 6.5,6.6 -k 6.1,6.2 -k 7.8,7.9 -k 7.5,7.6 -k 7.1,7.2 test1
 
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 01/01/10 02:00:10
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 02/02/10 04:01:11
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 02/11/11 04:11:22
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 03/12/11 05:12:33
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 04/21/11 06:20:40
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 05/22/11 06:22:45
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 06/28/11 07:40:65
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 07/29/11 08:44:77
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 08/30/11 08:66:80
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 09/30/11 11:80:82
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 10/31/11 11:91:95
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 11/32/11 33:92:99

But the same is not working on another file with same format, not sure what went wrong

# sort -k  6.8,6.9 -k 6.5,6.6 -k 6.1,6.2 -k 7.8,7.9 -k 7.5,7.6 -k 7.1,7.2 test2
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 02/02/10 36:10:15
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 01/01/11 02:10:15
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 01/02/11 04:10:15
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 05/02/11 04:10:15
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 01/02/11 04:11:15
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 04/02/11 04:12:15
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 02/02/11 04:21:21
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 06/02/11 04:12:22
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 02/02/11 04:32:32
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 02/02/11 04:22:34
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 02/02/11 04:31:34
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 02/02/11 04:33:34
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 02/02/11 54:33:34
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 66/02/11 04:12:15
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 01/03/11 05:10:15
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 01/04/11 01:10:15
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 01/05/11 06:10:15
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 01/05/11 16:10:15
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 01/05/11 36:10:15
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 01/06/11 03:10:15
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 02/02/12 36:10:15
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 02/02/15 36:10:15
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 02/02/19 36:10:15
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 02/02/22 36:10:15
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 02/02/43 36:10:15
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 02/02/62 36:10:15
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 02/12/62 36:10:15
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 02/22/62 36:10:15
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 02/62/62 36:10:15
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 02/92/62 36:10:15
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 12/92/62 36:10:15
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 22/92/62 36:10:15
6 dbclstr-b Logs Memphis_Prod_SQL_Diff Memphis-Prod-SQL-Inc-Application-Backup 33/92/62 36:10:15

The solution on Post #2 as verified in Post #6 are correct.
The commands in your post #7 are not correct.

However. Some of the data in Post #7 is really weird if these are supposed to be dates in the form "mm/dd/yy" . What on earth is "33/92/62" in the last record?

OK, that "special date" was just for testing.:stuck_out_tongue:

What the problem here is, its only sorting the value as per the first "-k". If we try to use multiple times with different sort values, its not taking.
For example;

sort -k6.7,6.8 -k6.1,6.2 -k6.4,6.5 -k7.1,7.2 -k7.4,7.5 -k7.7,7.8 < file

Here, its sorting the file only as per the first value (i.e) -k6.7,6.8; all the other sort values are not counting :wall:

Can't see anything wrong except that the command you typed in post #7 sorts to YY/MM/DD SS:MM:HH order which does not match the requirement.

anchal_khare post #6
sort -k6.7,6.8 -k6.1,6.2 -k6.4,6.5 -k7.1,7.2 -k7.4,7.5 -k7.7,7.8

ajiwww post #7
sort -k 6.8,6.9 -k 6.5,6.6 -k 6.1,6.2 -k 7.8,7.9 -k 7.5,7.6 -k 7.1,7.2

aijwww post #9
sort -k6.7,6.8 -k6.1,6.2 -k6.4,6.5 -k7.1,7.2 -k7.4,7.5 -k7.7,7.8

If you still have a problem, please post the current version of the test data, the command and the output.

1 Like

ok, thanks its working fine now