in reply to sorting files
I have made a few changes to your script:
Here is the code:
use strict; use warnings; use File::Copy; sub files_sort { my $first_number; my $second_number; my $re = qr/(\d+)_\d+_duration_\w+_comptage_\d+.txt$/; if ($a =~ $re) { $first_number = $1; } if ($b =~ $re) { $second_number = $1; } if ($first_number < $second_number) { -1 } elsif ($first_number > $second_number) { 1 } else { 0 } } my @TXT = glob("*.txt"); @TXT = sort files_sort @TXT; print "$_\n" for @TXT;
Here is the output:
% ls -1 *.txt A3_output_ZGZ22_03_20061022_duration_200mn_comptage_60.txt M3_output_ZGZ22_02_20061022_duration_200mn_comptage_60.txt M3_output_ZGZ22_12_20051022_duration_200mn_comptage_60.txt M3_output_ZGZ22_12_20061022_duration_200mn_comptage_60.txt % 689020.pl M3_output_ZGZ22_02_20061022_duration_200mn_comptage_60.txt A3_output_ZGZ22_03_20061022_duration_200mn_comptage_60.txt M3_output_ZGZ22_12_20051022_duration_200mn_comptage_60.txt M3_output_ZGZ22_12_20061022_duration_200mn_comptage_60.txt
Is this what you expect?
Caveat: you must make sure that all the *.txt files in your directory match your regex.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: sorting files
by GrandFather (Saint) on May 29, 2008 at 20:04 UTC |