因为我处理的是非常大的文件,所以在比较之前,我会先对基础文件和候选文件进行排序,以查看另一个文件中缺少哪些行。我这样做是为了避免将记录保存在内存中。排序是使用Linux命令行工具sort完成的。
在我的Perl脚本中,我会查看该行中的字符串是否小于、大于或等于另一个文件中的行,并在必要时推进文件的指针。然而,当我注意到我的字符串比较认为基础文件中的字符串小于候选文件中包含特殊字符的字符串时,我遇到了问题。
有没有一种可靠的方法来确保我的Linux sort和Perl字符串比较使用相同类型的字符串比较器?
在我的Perl脚本中,我会查看该行中的字符串是否小于、大于或等于另一个文件中的行,并在必要时推进文件的指针。然而,当我注意到我的字符串比较认为基础文件中的字符串小于候选文件中包含特殊字符的字符串时,我遇到了问题。
有没有一种可靠的方法来确保我的Linux sort和Perl字符串比较使用相同类型的字符串比较器?
join
或者comm
了吗?如果你只需要看一下哪些行在另一个文件中不存在,那么它们应该可以胜任。 - Daniel Gallaghercomm
:) 有趣的是,comm
手册没有提到locales,所以它可能会像你的Perl脚本一样出现问题。 - j_random_hacker