数字排序无法正确排序文件

数字排序无法正确排序文件

我使用 sort 命令对 file1.txt 进行数字排序。

~]# sort -n -o file1.txt file1.txt
0 Barack
50 George
60 Ronald
100 Bill

排序检查命令表明文件未排序。

~]# sort -c file1.txt
sort: file1.txt:4: disorder: 100 Bill

我手动修改文件并将“100 Bill”放在第二位。

~]# cat file1.txt
0 Barack
100 Bill
50 George
60 Ronald

现在,排序检查命令不会产生 stdout 或 stderr,这意味着文件已正确排序。正确排序后,我现在可以加入文件。似乎是使用第一个字符来了解文件是否已排序,而不是整个整数。

sort -c file1.txt

有没有办法对文件进行排序,使“100 Bill”位于第 2 行?我无法手动执行此操作,因为此问题的实际应用涉及日常工作处理的数百行文本。

答案1

如果你想使用一个文件join,你需要确保它已排序按照字典顺序在连接键上,这意味着您不应该使用-nwithsort。您始终可以对运算结果join再次进行数字排序。

当您运行 时sort -c,您需要指定与用于对文件进行排序的相同排序参数:因此,如果您想检查文件是否按数字排序,请运行sort -c -n

因此,在您的情况下,运行sort -o file1.txt file1.txt以按字典顺序对文件进行排序以供使用join(使用第一个字段作为连接字段)。

相关内容