var/log ディレクトリに次の名前で毎日保存される多くのログがあります。
log20130601 log20130602 log20130603 ...
各ログには多くの行があります。たとえば、log20130529 を開くと、次のようになります。
2013-05-29T15:55:05 [INFO] access_time:1369810505, item_id:1, start,
2013-05-29T15:55:05 [INFO] access_time:1369810505, item_id:2, start,
....
私がやりたいことは、最後の 7 つのファイルをグループ化するファイルを作成することです。たとえば、今日が 20130611 の場合、スクリプトを実行すると、log20130611、log20130610、log 20130609、log20130608、log20130607、log20130606、および log201305 のコンテンツが含まれる一時ファイルを作成できます。たとえば、すべてのファイルが 4 行だった場合、新しい一時ファイルは 28 行になるはずです。
これまでのところ、「グロブ」を使用して最後の7つのファイルを読み取る方法を知っています:
my @file_locations = reverse sort glob("/home/adrian/app/var/log/log*");
if ( @file_locations > 7 ) { $#file_locations = 6; }
しかし、それらを単一のファイルにグループ化する方法がわかりません。何か案は?