前端之家收集整理的这篇文章主要介绍了
algorithm – 文件的交集,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有两个大
文件(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从两个文件中提取它们.
原文链接:https://www.f2er.com/bash/383389.html