これは、リストを小数でソートするための別の質問です。
$ list="1 2 5 2.1"
$ for j in "${list[@]}"; do echo "$j"; done | sort -n
1 2 5 2.1
期待した
1 2 2.1 5
変数が配列であることを意図している場合は、次のlist
ように言う必要があります。
list=(1 2 5 2.1)
その結果、
1
2
2.1
5
for j in $list; do echo $j; done | sort -n
また
printf '%s\n' $list|sort -n
必要はありませんが"${list[@]}"
、単なる$list
文字列だからです。それ以外の場合は、同じフィールドのすべての数値を取得します。
$ for j in $list; do echo $j; done | sort -n
1
2
2.1
5
以前のコードでは、まったくソートされていませんでした:
$ list="77 1 2 5 2.1 99"
$ for j in "${list[@]}"; do echo "$j"; done | sort -n
77 1 2 5 2.1 99