我有以下問題。我有一個包含name,surname,age,mood. 我需要按年齡(降序)對這個檔案進行排序。如果年齡相同,則將其排序為我的姓氏(升序)。我用這個:cat $FILE |sort -r -n -t"," -k3,3 -k2,2 > "$HOME"/people.txt但-r對兩者進行降序排序。請問如何按姓氏升序排序?
uj5u.com熱心網友回復:
默認sort會按升序排序,-rflag會按降序排序;當您需要混合使用升序和降序時,該-r標志可以應用于單個-k指令,例如:
$ cat raw.dat
1,2,4,5
1,2,7,5
1,2,9,5
1,2,3,5
1,3,7,5
1,1,7,5
按第 3 列(降序)和第 2 列(升序)排序:
$ sort -t"," -k3nr -k2n raw.dat
1,2,9,5
1,1,7,5
1,2,7,5
1,3,7,5
1,2,4,5
1,2,3,5
筆記:
- 感謝 Ted Lyngmo 添加
n標志以正確處理數字 - 如果資料可能包含字符和數字的混合,則
n可能需要根據所需的排序方法進行替換(例如,V) - 關鍵要點是相當多的
sort標志可以應用在-key 級別
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/351563.html
標籤:猛击
