-3

ディレクトリから特定の形式のすべてのファイルを1行ずつ読み取るのに役立つ人はいますか?画面に表示されます。

そして私の要求は、プログラム自体にコマンド ラインを含めることです。

次に、簡単にプログラムを実行すると、ファイルのすべてのコンテンツが表示されます。以下は私が書いたプログラムです。

#!/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、ループを使用してこれらのファイルを 1 つずつ、その内容を画面に出力できます。これがコードです。

# 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 に答える