2024-05-19 00:00:38 发布
网友
我有两个文本文件,都是大约10亿行,但其中一个比另一个多218行,我需要找出218行并保存它们以供分析。在
最快的解决方案是什么?有没有奇迹般的shell命令或python库能够以最佳效率交付所需的结果?在
非常感谢。在
只需使用命令行工具diff:
diff
$ diff ./file1.txt ./file2.txt
只需运行命令,就可以得到两个文件(文件X和文件Y)的差异。在
diff -U 0 x y
或者,如果要将差异存储到其他文件(z),则运行命令
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。在
-1
-23
如果shell不支持<(command)样式的重定向,则必须将文件作为单独的步骤进行排序。在
<(command)
只需使用命令行工具
diff
:只需运行命令,就可以得到两个文件(文件X和文件Y)的差异。在
或者,如果要将差异存储到其他文件(z),则运行命令
^{pr2}$comm将生成比diff更具可读性的输出(加上其输出更容易通过管道传输到其他对象),并且应该更高效:
它的默认行为是打印三列-仅在file1中打印行,仅在file2中打印行,在这两列中都打印行。}分别抑制这些列。如果file1有多余的行,那么应该使用
-1
和{-23
。在如果shell不支持
<(command)
样式的重定向,则必须将文件作为单独的步骤进行排序。在相关问题 更多 >
编程相关推荐