comm: 文件没有按顺序排列

wen*_*nzi 13 sort comm numeric-data

我曾经comm比较两个排序的文件。这些文件中的每一行都是正整数。但结果显示

comm: file 1 is not in sorted order
comm: file 2 is not in sorted order
Run Code Online (Sandbox Code Playgroud)

即使这两个文件已排序,为什么会出现错误?

Chr*_*own 16

comm需要字典排序(plain sort),而不是数字排序(sort -n)。例如,它需要以下顺序:

1
2000
300
Run Code Online (Sandbox Code Playgroud)

不是以下顺序:

1
300
2000
Run Code Online (Sandbox Code Playgroud)

纠正这一点,问题就会消失。对于comm's locale 可能与sortlocale不同的更深奥的情况,您可能希望在其环境中运行sortand commwithLC_COLLATE=C以使用本机字节顺序。