2012-07-23 5 views
0

J'ai un tableau qui a le nombre de cœurs de processeur et un nombre pour chaque coeur. le tableau est le total.Tableau de tri dans bash et regex

Comment trier

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

selon des nombres et retourner la version triée du nombre de processeurs par exemple (3,0,1) signifie qu'il est triée et le noyau 3 est le noyau min et 1 est la max, à bash? puis assigner (3,0,1) à un tableau?

+0

Ne pensez-vous pas qu'il serait plus facile si vous venez de nous demander comment écrire tout le script plutôt que de nous laisser l'écrire pas à pas? –

Répondre

1

Essayez ceci pour le tri:

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

Pour stocker uniquement les numéros de CPU dans un nouveau tableau, essayez:

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

merci @costi. réponse utile – barp