2013-11-04 33 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