产品上有个功能需要在两个超大合集里去做集合计算(小的集合可以直接用 Redis 来做),于是我们的方案是直接使用 Go 调用 Linux 命令,对两个文件进行操作。
于是就有了我的这篇记录:
1.两个文件的交集,并集
1 | cat file1 file2 | sort | uniq > result |
第一条命名求两个文件的并集,如果有重复的行只保留一行。
第二条命令求两个文件的交集,即两个文件中都有的行。
第三条命令求两个文件的差集,即只有一个文件中有的行。
2.两个文件合并
1 | cat file1 file2 > result |
第一条命令是追击的方式,如果file1有n行,file2有m行,result为n+m行。
第二条命令是一个文件的内容在左边,一个文件命令在右边。
3.单个文件去重
1 | sort file |uniq |
第一条命令将重复的多行变为一行!
第二条命令是将有重复的行全部去掉!