perl スクリプトの出力である 3 つのテキスト ファイル 1.txt、2.txt、および 3.txt があります。3 つのファイルすべてに共通の行がいくつかあります。出力が 1.txt と 2.txt と 3.txt のスーパーセットであり、行が繰り返されてはならない別のテキスト ファイルである perl スクリプトを作成するのを手伝ってください。
質問する
60 次
2 に答える
3
これを行う最も簡単な方法は、ハッシュを使用して、以前に見た行を追跡することです。ただし、非常に大きなファイルの場合、これには大量のメモリが必要になります。
use strict;
use warnings;
use autodie 'open';
open my $out, '>', 'superset.txt';
my %seen;
for my $filename ('1.txt', '2.txt', '3.txt') {
open my $in, '<', $filename;
while ( my $line = <$in> ) {
print $out $line unless $seen{$line}++;
}
}
于 2013-11-12T06:29:36.423 に答える