Isso funciona para mim:
sortedColNums=( $( printf "%s\n" "${colNums[@]}" | sort -n ) )
Eu tenho uma matriz chamada colNums que se parece com isso:
1
5
4
2
2
7
Quando imprimo o array com echo "$ colNums", ele imprime assim. Eu quero essa lista ordenada.
Estou tentando
sortedColNums=($(for i in "${colNums[@]}"; do echo $i; done | sort -n))
mas, por algum motivo, o sortedNumCols contém apenas o primeiro número, 1. Alguém pode ajudar?
EDIT: Descobri que eu tinha uma string, em vez de uma matriz. Eu entendi em uma seqüência ordenada com a segunda resposta aqui: link
Isso funciona para mim:
sortedColNums=( $( printf "%s\n" "${colNums[@]}" | sort -n ) )
Tags bash