2012-07-23 21 views
0

我有一個數組,每個核心有CPU核心數量和一個數字。 該數組是總數。在bash和正則表達式排序數組

我怎樣才能排序

totals=(CPU0=12345 CPU1=23456 CPU3=) 

根據號碼和返回的CPU數目例如排序版本(3,0,1)意味着它被分類和芯3的最小和芯1是最大,在bash?然後將(3,0,1)分配給數組?

+0

你不覺得它會更容易,如果你只是問我們怎麼樣寫出整個腳本而不是讓我們一步一步寫出來? – 2012-07-23 09:47:38

回答

1

試試這個排序:

echo ${totals[*]} | tr ' ' '\n' | sort -n -t= -k2 

僅存儲CPU編號在新數組中,嘗試:

sorted_cpu_numbers=($(echo ${totals[*]} | tr ' ' '\n' | sort -n -t= -k2 | awk -F= '{print substr($1, 4, length($1))}')) 
+0

感謝@costi。有用的答案 – barp 2012-07-23 09:13:50