我需要做的是編寫一個腳本,它將讀取目錄列表 ,然後對它們進行排序,最後一個目錄將被「關閉」。在ASCII碼上按日期對PERL數組進行排序
my $ last_one = pop @sorted;
然後去年目錄將會被刪除 - 用系統(「RM-RF $ last_one)或 remove_tree($ last_one)
1 #!/usr/bin/perl
2 use strict;
3 use warnings;
4
5 my $dir_to_process = "/production/log/fo/archive/";
6 opendir DH, $dir_to_process or die "Sorry, this is not going to work out $!";
7
8 while (my $name = readdir DH) {
9 next if $name =~ /^\./;
10 push(my @unsorted,$name) ;
11 my @sorted_dir = sort @unsorted;
12 foreach my $sorted (@sorted_dir) {
13 print "$sorted\n";
14 sleep 1 ;
15 }
16
17 }
但是我有很多的麻煩分類目錄。 - 。它們是由這種格式寫 這是實際的輸出
2013Nov12
2013Sep14
2013Jul15
2013Jan20
2013Sep11
2013May31
2013Jul04
2012Dec09
2013Oct12
2013Oct09
2012Dec27
2013Nov28
2013Mar24
2013Jun06
2013Jun25
你在標題中說「通過ASCII排序」,但我假設你真正想要的是按日期排序(即最早到最新或反之亦然)? – ThisSuitIsBlackNot
如果你只是想找到最古老的,排序是沒有意義的。 – ikegami
問題是,它是按ascii排序,而不是按日期排序 - 是的,我需要的是最古老的日期目錄。 – capser