我有两个大文件(27k行和450k行).他们看起来像:
File1: 1 2 A 5 3 2 B 7 6 3 C 8 ... File2: 4 2 C 5 7 2 B 7 6 8 B 8 7 7 F 9 ...
我想要两个文件中的第三列都在两个文件中的行(排除了带有A和F的注释行):
OUTPUT: 3 2 B 7 6 3 C 8 4 2 C 5 7 2 B 7 6 8 B 8
什么是最好的方式?
awk '{print $3}' file1 | sort | uniq > file1col3 awk '{print $3}' file2 | sort | uniq > file2col3 grep -Fx -f file1col3 file2col3 | awk '{print "\\w+ \\w+ " $1 " \\w+"}' > col3regexp egrep -xh -f col3regexp file1 file2
抓取两个文件中所有唯一的列3,与它们相交(使用grep -F),打印一堆与所需列匹配的正则表达式,然后使用egrep从两个文件中提取它们.