我有一個文件,其中包含資料儲存中的空間詳細資訊。我想根據其中的可用空間對其進行排序。
文件是:
Name:VSP-01-32 Capacity:2047 Free Space:144
Name:VSP-02-33 Capacity:2047 Free Space:333
Name:VSP-03-34 Capacity:2047 Free Space:163
Name:VSP-04-35 Capacity:2047 Free Space:110
Name:VSP-05-36 Capacity:2047 Free Space:256
Name:VSP-06-37 Capacity:2047 Free Space:417
輸出應如下所示:
Name:VSP-06-37 Capacity:2047 Free Space:417
Name:VSP-02-33 Capacity:2047 Free Space:333
Name:VSP-05-36 Capacity:2047 Free Space:256
Name:VSP-03-34 Capacity:2047 Free Space:163
Name:VSP-01-32 Capacity:2047 Free Space:144
Name:VSP-04-35 Capacity:2047 Free Space:110
我嘗試使用 sed 和 awk,但找不到令人信服的解決方案。請幫忙。
答案1
如果您查看,man sort
您會發現 (GNU) 排序允許您指定排序依據的欄位。嘗試:
sort -n -t: -k4 -r
-n
意味著按數字排序而不是按字典順序排序。
-t:
告訴它用於:
分隔(分割)字段。
-k4
告訴它使用第四個字段。
-r
告訴它反轉結果。
:
需要注意的是,當檔案名稱中有 a 時(這會移動欄位/列),此方法不起作用。如果這是一個要求,最簡單的方法是使用腳本(例如 perl 或 python)。