2012-10-25 25 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; 
} 
相關問題