同时映射两个文本文件时,我想删除两个文件中存在的行
我已经尝试了很多命令,例如grep diff comm ...,但是所有内容都会整体打印出其中一个文件内容。
答案 0 :(得分:0)
这里是一个例子:
use feature qw(say);
use strict;
use warnings;
{
my $lines1 = read_lines( 'file1');
my $lines2 = read_lines( 'file2');
my %lines1 = map {$_ => 1} @$lines1;
my %lines2 = map {$_ => 1} @$lines2;
for (@$lines1) {
say if !exists $lines2{$_};
}
for (@$lines2) {
say if !exists $lines1{$_};
}
}
sub read_lines {
my ( $fn ) = @_;
open ( my $fh, '<', $fn ) or die "Could not open file '$fn': $!";
chomp( my @lines = <$fh> );
close $fh;
return \@lines;
}