複数列の並べ替え

複数列の並べ替え

内容は次のようなファイルがあります。

19.58 1925 Alpha
20.40 1924 Otter
13.66 1920 Gold

以下を出力するために「列基準」でソートしようとしています。

13.40 1920 Alpha
19.58 1924 Gold
20.66 1925 Otter

次のようなさまざまなコードの組み合わせを試しました。

cat files | sort -t. -k1,1n | sort -t " " -k2,2n -k3,3r k4,4n

しかし、これは所望の結果を出力しない。私が言及したソートをどのように達成できますか?

ベストアンサー1

printf "%s.%s %s %s\n" $(paste <(awk -F'[. ]' '{print $1}' file | sort -n) <(awk -F'[. ]' '{print $2}' file | sort -n) <(awk -F'[. ]' '{print $3}' file | sort -n) <(awk -F'[. ]' '{print $4}' file | sort))

出力:

1920 13.40アルファ
19.58 1924年金
20.66 1925カワウソ

おすすめ記事