1

このスクリプトで出力ファイルを結果/に配置しようとしていますが、結果/スプールにのみ取得します。それらを適切な場所に配置するにはどうすればよいですか?

 #!/usr/bin/perl -w

use POSIX;
my $date = strftime "%Y%m%d_%H%M.txt", localtime;

my @files = <spool/*.*>;
foreach $file (@files) {
    my $date_file = $file;
    system("$^X  wfreq.pl $file >> results/${date_file}_$date");
    unlink("$file");
}
4

2 に答える 2

2

これをテストしましたか?

#!/usr/bin/perl -w

use POSIX;
my $date = strftime "%Y%m%d_%H%M.txt", localtime;

my @files = <spool/*.*>;
foreach $file (@files) {
    (my $date_file = $file) =~ s!.*/!!;
    system("$^X  wfreq.pl $file >> results/${date_file}_$date");
    unlink("$file");
}

関数system()qx()&exec()は問題なく変数を処理できます。

于 2012-10-25T00:31:23.583 に答える
0

これはあなたが探しているものですか?

これにより、日付ごとに個別のファイルが作成されます

@files = <spool/*.*>;
foreach $file (@files) {
    system($^X, "wfreq.pl", $file);
    $DATE = strftime "%Y%m%d";
    open OUTPUT, '>results/$DATE.txt' or die;
    print OUTPUT $DATE;
}

または、結果がすべて 1 つのテキスト ファイルに含まれるファイルの場合

@files = <spool/*.*>;
open OUTPUT, '>>results/results.txt' or die;
foreach $file (@files) {
    system($^X, "wfreq.pl", $file);
    $DATE = strftime "%Y%m%d";
    print OUTPUT $DATE;
}
于 2012-10-25T00:38:50.017 に答える