我有两个文本文件text1.txt和text2.txt,如下所示
文本1
ac
abc
abcd
abcde
文本2
ab
abc
acd
abcd
输出
ac
abcde
我需要比较这两个文件,并在第二个文件中存在匹配项时从 text1
中删除内容。
我想要 Perl 语言的代码。目前我正在尝试以下代码。
#!usr/bin/perl
use strict;
use warnings;
open (GEN, "text1.txt") || die ("cannot open general.txt");
open (SEA, "text2.txt") || die ("cannot open search.txt");
open (OUT,">> output.txt") || die ("cannot open intflist.txt");
open (LOG, ">> logfile.txt");
undef $/;
foreach (<GEN>) {
my $gen = $_;
chomp ($gen);
print LOG $gen;
foreach (<SEA>) {
my $sea = $_;
chomp($sea);
print LOG $sea;
if($gen ne $sea) {
print OUT $gen;
}
}
}
在此,我从 text1
获取所有内容,而不是不匹配的内容。请帮帮我。
最佳答案
我认为您应该读取数组中的 text2,然后在该数组的第二个 foreach 中使用该数组。
@b = <SEA>;
否则在第二个循环中文件指针将已经位于末尾
关于perl - 如何比较两个文本文件并删除匹配的内容并传递到 perl 中的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14723333/