我正在尝试加入 2 个大文件(1 个文件为 699M,另一个文件为 20GB)。这两个文件都只有 2 列。我正在使用的命令是:join -1 2 -2 1 -t , -o 1.2,0,2.2 file1 file2
。当我尝试使用较小的命令时file1
,该命令工作正常。我尝试打印$?
以查看退出代码是否非零,但事实并非如此。
如何调试才能找出原因?
Some info:
O.S: RHEL5
Arch: x86_64
答案1
两个文件都必须在连接字段上排序,并且它们必须使用与 所使用的相同顺序进行排序join
。一个常见的问题是文件使用例如 进行排序LC_COLLATE=C
,但当前值LC_COLLATE
(现在由 使用join
)是其他值,例如de_DE
。 (LC_COLLATE=C
并且LC_COLLATE=de_DE
在比较大小写字母时有所不同,并且它们对空格的处理也不同。)