Linux の sort コマンドはソートする列を指定することができます。
次のテキストファイル( score.txt )を処理してみます。
yamada 90 tanaka 100 sato 64 suzuki 93
オプションなしのソートだと次のようになります。
$ sort score.txt
sato 64
suzuki 93
tanaka 100
yamada 90
2 列目でソートします。
$ sort -k 2,2 score.txt tanaka 100 sato 64 yamada 90 suzuki 93
"2,2" という指定は 「 2 列目から 2 列目まで」という意味で 2 列目のみを使ってソートするときの指定です。 "2" だけを指定すると 「 2 列目から最後まで」という意味になります。
数字が“数値”として認識されていないので ソート順が変です。 "-n" オプションで、数値を“数値”と認識させます。
$ sort -k 2,2 -n score.txt sato 64 yamada 90 suzuki 93 tanaka 100
ついでに 値の大きい順(降順)にします。
$ sort -k 2,2 -n -r score.txt tanaka 100 suzuki 93 yamada 90 sato 64
ソートできました。
CSV ファイルのように列の区切り文字が空白でないときは 次のように "-t" オプションで区切り文字を指定できます。
$ sort -k 2,2 -n -r -t "," score.txt