我有两个文件,A 和 B。我只需要输出不在文件 B 中的那些人,即文件 A 中的唯一行。
文件 A 看起来像:
SNP CHR GeneticDistance BP P
rs1043096 1 0.000000 111682307 1.6478397881920986E-06
rs6661407 1 0.000000 230654589 6.5655676421792970E-06
rs1822312 1 0.000000 146687250 6.9190273469706007E-06
rs7533254 1 0.000000 34181830 1.8066585187932294E-05
rs1414355 1 0.000000 89828716 2.0823984140492505E-05
rs237425 1 0.000000 94012287 4.3816651855534701E-05
文件 B 看起来像:
rs1043096
rs1822312
输出如下:
SNP CHR GeneticDistance BP P
rs6661407 1 0.000000 230654589 6.5655676421792970E-06
rs7533254 1 0.000000 34181830 1.8066585187932294E-05
rs1414355 1 0.000000 89828716 2.0823984140492505E-05
rs237425 1 0.000000 94012287 4.3816651855534701E-05
我什至不知道从哪里开始,也不知道该使用什么语言!我大概不能使用 !=in 正则表达式,否则我会得到文件中与逐行不匹配的所有其他内容,而不仅仅是文件 A 独有的行
我可以修改这样的东西吗?排序文件A 文件B | uniq -u > 文件C
或这个?我发现它很棘手,因为文件 A 和 B 中的行看起来并不相同。
open(FILE1, "< fileA.txt");
open(FILE2, "< fileB.txt");
@file1 = <FILE1>;
@file2 = <FILE2>;
foreach $line (@file1, @file2)
{
chomp($line);
$TEXT{$line}++;
}
foreach $line (sort keys %TEXT)
{
if ($TEXT{$line} == 1)
{
print $line . "\n";
}
}
谢谢!