-3

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

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

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

#!/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++;
}
4

1 回答 1

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

请澄清“包括命令行”的含义,以便我们进一步提供帮助。

于 2013-08-13T12:34:12.473 回答