Linux 如何将两个文件中不匹配的行存储到新文件中
我有两个输入文件,如下所示,我需要将不匹配的行从第二个文件写入一个新文件 输入1Linux 如何将两个文件中不匹配的行存储到新文件中,linux,awk,Linux,Awk,我有两个输入文件,如下所示,我需要将不匹配的行从第二个文件写入一个新文件 输入1 1 94564350 . C A 1 94564350 . C T 输入2 1 94564351 . A T 1 94564351 . A C 1 94564350 . C
1 94564350 . C A
1 94564350 . C T
输入2
1 94564351 . A T
1 94564351 . A C
1 94564350 . C A
输出是
1 94564351 . A T
1 94564351 . A C
我试过这个命令
awk -F"\t" 'NR==FNR{a[$0];next}($2 in a)&& $1>=3' fileB fileA >fileC
但不起作用
awk 'NR == FNR{a[$0];next} !($0 in a)' fileA fileB
上面的命令对大文件也占用了太多时间是否有其他选项可以执行相同的操作
您不需要分配-F=“\t”
,awk会在这样的文件中正确地解释它
试验
我已经尝试过这个命令awk-F“\t”'NR==FNR{a[$0];next}($a中的2)和&$1>=3'fileB fileA>fileC,但没有工作“不匹配”意味着什么?上面文件第二列中的不匹配
awk 'NR == FNR{a[$0];next} !($0 in a)' fileA fileB
$ awk 'NR == FNR{a[$0];next} !($0 in a)' fileA fileB
1 94564351 . A T
1 94564351 . A C