我有两个大文件,里面有很多文本。我的任务是保留文件A中所有包含文件B中某个字段的行。
文件A类似于:
Name (tab) # (tab) # (tab) KEYFIELD (tab) Other fields
我成功使用了cut、sed和其他工具,将文件B中的内容处理成了一个列表。
因此,目标是如果文件A中的第四个字段(称为KEYFIELD)与文件B中的某行匹配,则保留文件A中的所有行。(不必完全匹配,所以如果文件B中有“Blah”,而文件A中有“Blah_blah”,也可以匹配成功)
我尝试过:
grep -f fileBcutdown fileA > outputfile
编辑:好吧,我放弃了。我刚刚强制结束了它。
有更好的方法吗?对于任何关心的人,文件A为13.7MB,削减后的文件B为32.6MB。
编辑:这是文件A中的一行示例:
chr21 33025905 33031813 ENST00000449339.1 0 - 33031813 33031813 0 3 1835,294,104, 0,4341,5804,
来自文件B的示例行被削减:
ENST00000111111
outputfile
的内容是什么?顺便说一句,CPU不会成为瓶颈,但慢/快硬盘可能会产生很大的影响。 - knittl