0
res[0]="b 9" res[1]="a 1" res[2]="c 10" printf -- '%s\n' "${res[@]}"
我想排序它並按bash中的數字順序顯示數組。自定義排序bash陣列
a 1 b 9 c 10
這是可能的嗎?
res[0]="b 9" res[1]="a 1" res[2]="c 10" printf -- '%s\n' "${res[@]}"
我想排序它並按bash中的數字順序顯示數組。自定義排序bash陣列
a 1 b 9 c 10
這是可能的嗎?
排序與sort
:
res[0]="b 9"
res[1]="x 1"
res[2]="c 10"
printf -- '%s\n' "${res[@]}" | sort -k2 -n
輸出:
x 1 b 9 c 10
sort
:
res[0]="b 9"
res[1]="x 1"
res[2]="c 10"
new=() # declare array new
# copy array res to new and use second column as index
for ((i=0;i<${#res[@]};i++)); do
new[${res[$i]#* }]=${res[$i]% *}
done
# print array new and use its index: ${!new[@]}
for i in "${!new[@]}"; do
echo "${new[$i]} $i"
done
輸出:
x 1 b 9 c 10