Sort
數字排序無法正確排序文件
我使用 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
(使用第一個欄位作為連接欄位)。