0

これは、リストを小数でソートするための別の質問です。

$ 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
4

3 に答える 3

4

変数が配列であることを意図している場合は、次のlistように言う必要があります。

list=(1 2 5 2.1)

その結果、

1
2
2.1
5
于 2013-05-29T10:50:13.080 に答える
2
for j in $list; do echo $j; done | sort -n

また

printf '%s\n' $list|sort -n
于 2013-05-29T10:47:52.263 に答える
0

必要はありませんが"${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
于 2013-05-29T10:45:49.613 に答える