2013-11-04 58 views
0

這是我的。輸出PERL到一個.txt文件和屏幕

#!/usr/bin/perl 

$numbertotal = 0; 
$filecount = 0; 

open my $thisfile, '<', "files.txt" or die $!; 

while (<$thisfile>) { 
    ($thisdate, $thistime, $thisampm, $thissize, $thisname) = split; 

    $numbertotal += $thissize; 
    $filecount += 1; 
    printf "%10d  %-25.25s\n", $thissize, $thisname; 
} 

$averagefilesize = $numbertotal/$filecount; 

print "Total files: ",$filecount,"  Average file size: ",$averagefilesize," bytes\n"; 

我想取2條不同的印刷線,並將它們發送到將通過代碼來創建另一個文件。我知道它會使用'<'操作,但我有一個問題搞清楚了。

任何幫助表示讚賞。謝謝。

+1

你嘗試打印到標準輸出和文件?我不確定我是否遵循這個問題。你看過TEE嗎? – crownedzero

+0

是的。我想打印到屏幕和文件。屏幕只是爲了看看我在做什麼,而不必打開其他文件。 – Larry

回答

1

要寫入一個文件,你'>'打開它:

open my $thisfile, '<', "files.txt" or die $!; 
open my $thatfile, '>', 'output.txt' or die $!; 

while (<$thisfile>) { 
    ($thisdate, $thistime, $thisampm, $thissize, $thisname) = split; 

    $numbertotal += $thissize; 
    $filecount += 1; 
    printf $thatfile "%10d  %-25.25s\n", $thissize, $thisname; 
} 
close $thatfile; 
close $thisfile; 
+0

在開始時添加其他文件是我忘記了。我添加了「打開」語句,並在代碼中添加了兩行打印行,它的工作方式與我希望的相同。感謝您的幫助和速度。 – Larry