2012-10-25 27 views
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"); 
} 

回答

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()可以处理的变量没有任何问题。

+0

呀!我无法相信自己就是那么接近......在文件写作方面做得很完美,但我似乎无法得到正确的日期。我想要的文件名是这种格式20121025_1215.txt – OldYellAr

+0

看到我编辑的帖子 –

+0

甜,像我想要的:)超级有用! – OldYellAr

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; 
} 

或与结果的文件都在同一个文本文件

@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; 
} 
相关问题