如何在linux下比较两个大的文本文件并得到差异

2024-05-19 00:00:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个文本文件,都是大约10亿行,但其中一个比另一个多218行,我需要找出218行并保存它们以供分析。在

最快的解决方案是什么?有没有奇迹般的shell命令或python库能够以最佳效率交付所需的结果?在

非常感谢。在


Tags: 命令解决方案shell效率奇迹文本文件
3条回答

只需使用命令行工具diff

$ diff ./file1.txt ./file2.txt

只需运行命令,就可以得到两个文件(文件X和文件Y)的差异。在

diff -U 0 x y

或者,如果要将差异存储到其他文件(z),则运行命令

^{pr2}$

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和{}分别抑制这些列。如果file1有多余的行,那么应该使用-23。在

如果shell不支持<(command)样式的重定向,则必须将文件作为单独的步骤进行排序。在

相关问题 更多 >

    热门问题