我有两个文本文件,它们都大约有10亿行,但是一个文本文件比另一个文本文件多218行,我需要找出218行并将其保存以进行分析。
最快的解决方案是什么?是否有任何奇迹外壳命令或python库以最佳的效率提供所需的结果?
非常感谢您。
答案 0 :(得分:0)
只需使用命令行工具diff
:
$ diff ./file1.txt ./file2.txt
答案 1 :(得分:0)
comm会比diff产生更多可读的输出(加上其输出更容易传递到其他内容),并且应该更有效:
$ cat file1.txt
dog
cat
rabbit
$ cat file2.txt
cat
dog
rabbit
llama
$ comm -13 <(sort file1.txt) <(sort file2.txt)
llama
它的默认行为是打印三列-仅在file1中显示行,仅在file2中显示行,并在两者中都显示行。 -1
和-3
禁止显示相应的列。如果file1包含多余的行,则应改用-23
。
如果您的外壳不支持<(command)
样式重定向,则必须将文件排序为一个单独的步骤。
答案 2 :(得分:0)
只需运行命令即可获取两个文件(文件X和文件Y)之间的差异。
diff -U 0 x y
或者如果要将差异存储到其他文件(z),请运行命令
diff -U 0 x y >> z