我使用 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
现在,sort check 命令不会产生 stdout 或 stderr,这意味着文件已正确排序。正确排序后,我现在可以加入文件。似乎第一个字符用于知道文件是否已排序而不是整个整数。
sort -c file1.txt
有没有办法对文件进行排序,使“100 Bill”在第 2 行?我无法手动执行此操作,因为此问题的实际应用涉及日常工作处理的数百行文本。
如果你想使用一个文件 with
join
,你需要确保它在连接键上按字典顺序排序,这意味着你不应该使用-n
withsort
。您始终可以对join
运算结果再次进行数字排序。运行时
sort -c
,需要指定与文件排序相同的排序参数:因此,如果要检查文件是否按数字排序,请运行sort -c -n
.因此,在您的情况下,运行
sort -o file1.txt file1.txt
以按字典顺序对文件进行排序以供使用join
(使用第一个字段作为连接字段)。