任何机构都可以帮助我逐行从目录中读取特定格式的所有文件,它应该在屏幕上打印。
我的要求是在程序本身中包含命令行。
然后,当我运行该程序时,它应该显示文件的所有内容。 以下是我写的程序,任何人都可以帮助我....
#!/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++;
}
答案 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;
}
请通过“包括命令行”澄清您的意思,以便我们进一步提供帮助。