2016-06-24 6 views
1

Ich bin neu zu bash und einige Probleme beim Ausdrucken einzelner Zahlen nach dem Sortieren eines Arrays. Ich habe folgende ....Wie können einzelne Zahlen nach der Bestellung eines Arrays in Bash ausgedruckt werden?

for x in ${array[@]} 
       do 
        echo $x 
       done| sort 

Dies ist der einzige Weg, ich aus dem gesamten Array in Reihenfolge drucken konnte. Jetzt versuche ich, ein einzelnes Element zu drucken, nachdem es bestellt worden ist, so habe ich versucht ....

for x in ${array[@]} 
        do 
         echo ${array[2]} 
         exit 
        done| sort 

Aber es druckt das dritte Element in den ungeordneten Array Array statt. Irgendwelche Hilfe?

+1

Sie sollten das sortierte Array irgendwo speichern und dann drucken Sie den dritten Artikel – GMichael

+0

Ich habe das versucht, aber die Dinge wurden wirklich chaotisch. Ich werde versuchen, es wieder zu tun – ricky162

Antwort

1

Sie drucken die Variable und dann zu versuchen, die einzige Variable zu sortieren, die Sie (in Ihrem Fall ${array[2]})

Versuchen Sie, diese gedruckt haben:

sorted=($(printf '%s\n' "${array[@]}"|sort)) 
echo ${sorted[2]} 

Diese sortiert das Array und speichert sie in einem anderen Array sorted

+0

danke. Es druckt nur eine Reihe von Leerzeichen anstelle von Zahlen – ricky162

+0

Lassen Sie mich wissen, was Sie sehen, wenn Sie 'echo $ {sortierte [@]}' – Fazlin

+0

immer noch eine Reihe von leeren Leerzeichen ... – ricky162

Verwandte Themen