#!/usr/bin/perl # http://perlmonks.org/index.pl?node_id=792392 use strict; my $string; while( my $line = ) { my $date = (split( /\Q.\E/, $line ))[1]; $string = $string . $date . " " . $line; } my @test = map { $_->[0] } sort { $a->[1] cmp $b->[1] } map { [$_, (split)[0]] } split( /\n/, $string); print join "\n", map { (split)[1] } @test; __DATA__ /devLog/devid234/term_logs/devid234.2009-08-27-23-55-11.terminal.log.tar.gz /devLog/devid234/term_logs/devid234.2009-08-27-15-05-06.terminal.log.tar.gz /devLog/devid234/term_logs/devid234.2009-08-27-01-45-03.terminal.log.tar.gz /devLog/devid234/term_logs/devid234.2009-08-28-00-00-01.terminal.log.tar.gz /devLog/devid234/term_logs/devid234.2009-08-28-18-25-04.terminal.log.tar.gz /devLog/devid168/term_logs/devid168.2009-08-28-01-35-02.terminal.log.tar.gz /devLog/devid168/term_logs/devid168.2009-08-27-04-02-01.terminal.log.tar.gz /devLog/devid168/term_logs/devid168.2009-08-28-20-25-01.terminal.log.tar.gz /devLog/devid168/term_logs/devid168.2009-08-27-17-55-01.terminal.log.tar.gz /devLog/devid918/term_logs/devid918.2009-08-27-21-15-01.terminal.log.tar.gz /devLog/devid918/term_logs/devid918.2009-08-27-13-25-01.terminal.log.tar.gz /devLog/devid918/term_logs/devid918.2009-08-27-00-00-01.terminal.log.tar.gz /devLog/devid918/term_logs/devid918.2009-08-28-00-00-02.terminal.log.tar.gz /devLog/devid918/term_logs/devid918.2009-08-28-09-45-01.terminal.log.tar.gz /devLog/devid918/term_logs/devid918.2009-08-28-19-25-01.terminal.log.tar.gz /devLog/devid167/term_logs/devid167.2009-08-28-02-45-01.terminal.log.tar.gz /devLog/devid167/term_logs/devid167.2009-08-27-01-45-02.terminal.log.tar.gz /devLog/devid167/term_logs/devid167.2009-08-27-10-55-01.terminal.log.tar.gz