数字順に 2 番目の列を使用して複数の列を並べ替えます。

数字順に 2 番目の列を使用して複数の列を並べ替えます。

ファイル:namelist.txt

Emily 0
Emily 1
Emily 5
Joe 0
Joe 10
Joe 5
Joe 6

私が実行したコマンドは次のとおりです。

cat nameslist.txt | sort -k1 -k2

結果:

Emily 0
Emily 1
Emily 5
Joe 0
Joe 10
Joe 5
Joe 6

最初の数字でソートされているように見えますが、2番目の列を数字でソートするにはどうすればよいですか?私が望む結果は次のとおりです。

Emily 0
Emily 1
Emily 5
Joe 0
Joe 5
Joe 6
Joe 10

答え1

-n数字で並べ替えるには、このオプションを使用してください。

sort -k1,1 -k2n nameslist.txt

cat入力ファイルを読み取るために使用する必要はありません。sortこれを行うために追加のプロセスは必要ありません。

この-k1,1表記は、最初のソートキーの開始および停止制限を最初のフィールドに設定します。

関連情報