使用Perl读取和打印文件内容

时间:2013-08-10 08:30:55

标签: perl

任何机构都可以帮助我逐行从目录中读取特定格式的所有文件,它应该在屏幕上打印。

我的要求是在程序本身中包含命令行。

然后,当我运行该程序时,它应该显示文件的所有内容。 以下是我写的程序,任何人都可以帮助我....

#!/usr/local/bin/perl
$filepath="/home/hclabv";
opendir(DIR,"$filepath");
@files=grep{/\.out$/} readdir(DIR);
closedir(DIR);
$c = 0;
for ($c=0 ;
while ($c <= @files)
{
$cmd = "Perlsc11 $files[$c]";
system($cmd);
if($#ARGV != 0) {
   print STDERR "You must specify exactly one argument.\n";
exit 4;
}
else
{
print ("$files[$c]\n");  
# Open the file.
open(INFILE, $ARGV[0]) or die "Cannot open $ARGV[0]: $!.\n";
while(my $l = <INFILE>) {
print $l;
}
close INFILE;
}
$c++;
}

1 个答案:

答案 0 :(得分:0)

您可以使用perl中的glob功能获取指定目录中扩展名为“.out”的文件名列表。然后,您可以使用循环逐个open这些文件并将其内容打印到屏幕上。这是代码,

# get all file-names with ".out" extension into array
my @outFiles = glob "/home/hclabv/*.out";

# loop through list of file names in array
foreach my $outFileName ( @outFiles )
{
    # open the file for processing
    open $outFile, '<', $outFileName or die "Unable to open file for reading : $!";

    # iterate through each line in the file
    while ( $line = <$outFile> )
    {
        # print the individual line
        print "$line\n";
    }

    # close the file
    close $outFile;
}

请通过“包括命令行”澄清您的意思,以便我们进一步提供帮助。