Perl で読み取り、特定の情報を抽出し、それらのファイルごとに新しいファイルに書き込む必要がある 18 MB のテキスト ファイルがたくさんあります。
これどうやってするの?
たとえば、次のコードは 1 つのファイルにのみ適用され、コードに記載されているファイルの新しいファイルを作成しますが、複数のファイルがあるため、複数のファイルに対してそれを行うにはどうすればよいですか?
以下は、単一のファイルでのみ機能する私のコードです。多くのファイルに対して同じことをしたい。どうすればいいですか?
use Regexp::Common qw/net/;
use Regexp::Common qw/net/;
system("clear");
my $file2 = 'TR1';
open my $in, '<', $file2 or die $!;
open my $out, '>', 'Number_of_Hops_TR1_007' or die $!;
my $var = 0;
my $i = 0;
my $traceroute;
my $line;
while (my $line = <$in>) {
if ($line =~ /^traceroute to (\S+)/) {
$traceroute = $1;
$var++;
#print "$traceroute\n";
}
my ($ip) = $line =~ /(?: \d+ \s \s+) ($RE{net}{IPv4}) /msx;
if ($traceroute eq $ip) {
print $out $ip if defined, "\n";
if ($ip ne undef) {
{ $i++; }
}
}
else {
}
}
print $out "Number of traceroutes - $var\n";
print $out "Number of traceroutes reached destination - $i\n";
my $subs = $var - $i;
print $out
"Number of traceroutes that did not reaach destination ($subs)\n";
my $perc = ($i / $var) * 100;
print $out "Percentage of sucessful traceroutes ($perc%)\n";