Sort

數字排序無法正確排序文件

  • January 19, 2018

我使用 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,你需要確保它在連接鍵上按字典順序排序,這意味著你不應該使用-nwith sort。您始終可以對join運算結果再次進行數字排序。

執行時sort -c,需要指定與文件排序相同的排序參數:因此,如果要檢查文件是否按數字排序,請執行sort -c -n.

因此,在您的情況下,執行sort -o file1.txt file1.txt以按字典順序對文件進行排序以供使用join(使用第一個欄位作為連接欄位)。

引用自:https://unix.stackexchange.com/questions/418230