-1

同じ行数の 2 つのファイルがあり、それぞれに数値の列が含まれています。

ファイルの例A

1 2 3 4
2 3 4 5

ファイルの例B

7 8 9 0
6 7 8 9

これらの両方のファイルから対応する行の値を合計し、結果を出力ファイルに書き込みたいと思います。

期待される出力:

8 10 12 4
8 10 12 14
4

2 に答える 2

2

2 つのファイルの行数とフィールド数が同じであると考える

use strict;
use warnings;
use Data::Dumper;

#first data file
open my $fh1, '<', '1.txt' or die $!;

#seecond data file
open my $fh2, '<', '2.txt' or die $!;

#output file
open my $out, '>', 'out.txt' or die $!;

while (!eof($fh1) and !eof($fh2)) {
    my $line1 = <$fh1>;
    my $line2 = <$fh2>;

    my @l1 = split /\s+/, $line1;
    my @l2 = split /\s+/, $line2;

    my @newvalues;

    my $i = 0;
    for (@l1){
        push @newvalues, $_ + $l2[$i];
        $i++;
    }

    print Dumper \@newvalues;

    my $new = join ' ', @newvalues;
    print $out $new."\n";
}

## 編集 ##

この問題を解決する方法については、以下の @hwnd バージョンを参照してください。

于 2013-08-08T16:23:48.193 に答える