Nam*_*ata 1 sed awk python perl text-processing
如果 File1 的 Column1 与 Column 1 File2 完全匹配,我想删除文件 1 的所有行。
文件 1:
r001:21:10 21 AAAAAATTTGC * = XM:21
r002:21:10 21 YAAAATTTGC * = nM:21
r001:21:10 21 TTAAAATTTGC * = XM:21
r0012:21:10 21 LLAAAATTTGC * + XM:21
r001:21:10 21 AAAAAATTTGC * = GM:21
Run Code Online (Sandbox Code Playgroud)
文件2:
r001:21:10
r001:21:20
r002:41:36
r002:41:99
r002:41:87
r0012:21:1
Run Code Online (Sandbox Code Playgroud)
预期输出:
r002:21:10 21 YAAAATTTGC * = nM:21
r0012:21:10 21 LLAAAATTTGC * + XM:21
Run Code Online (Sandbox Code Playgroud)
你可以使用这个awk
:
$ awk 'FNR==NR {a[$i]; next}; !($1 in a)' f2 f1
r002:21:10 21 YAAAATTTGC * = nM:21
r0012:21:10 21 LLAAAATTTGC * + XM:21
Run Code Online (Sandbox Code Playgroud)
FNR==NR {a[$i]; next}
它读取第一个文件并将内容保存到a
数组中。!($1 in a)
在读取第二个文件时,它会检查第一个字段是否在a
数组中。如果不是,则打印该行。