web-dev-qa-db-ja.com

最後の列で数値を並べ替える方法は?

私はこの入力を持っています:

sdkxyosl 1
safkls 2
asdf--asdfasxy_asd 5
dkd8k  jasd 29
sdi44sw 43
asasd afsdfs 10
rklyasd 4

私はこの出力が必要です:

sdi44sw 43
dkd8k  jasd 29
asasd afsdfs 10
asdf--asdfasxy_asd 5
rklyasd 4
safkls 2
sdkxyosl 1

したがって、最後の列で行をソートする必要があります。

1行に何列あるかわかりません。

どうすればいいのかわからない。 「Perl power」を持っていません。私は〜sed、awk、cutなどの平均的なスクリプト能力を持っています。

誰かがそれを行う方法を知っていますか?

23
LanceBaynes

次のコマンドラインは、awkを使用してfile.txtの各行の最後のフィールドを先頭に追加し、逆の数値ソートを実行してから、cutを使用して追加されたフィールドを削除します。

awk '{print $NF,$0}' file.txt | sort -nr | cut -f2- -d' '
35
forcefsck