複数の列でソートしようとしています。結果は期待どおりではありません。
これが私のデータ(people.txt)です。
Simon Strange 62
Pete Brown 37
Mark Brown 46
Stefan Heinz 52
Tony Bedford 50
John Strange 51
Fred Bloggs 22
James Bedford 21
Emily Bedford 18
Ana Villamor 44
Alice Villamor 50
Francis Chepstow 56
以下が正常に機能します。
bash-3.2$ sort -k2 -k3 <people.txt
Emily Bedford 18
James Bedford 21
Tony Bedford 50
Fred Bloggs 22
Pete Brown 37
Mark Brown 46
Francis Chepstow 56
Stefan Heinz 52
John Strange 51
Simon Strange 62
Ana Villamor 44
Alice Villamor 50
ただし、以下は期待どおりに機能しません。
bash-3.2$ sort -k2 -k1 <people.txt
Emily Bedford 18
James Bedford 21
Tony Bedford 50
Fred Bloggs 22
Pete Brown 37
Mark Brown 46
Francis Chepstow 56
Stefan Heinz 52
John Strange 51
Simon Strange 62
Ana Villamor 44
Alice Villamor 50
私は姓、次に名でソートしようとしましたが、Villamorsが正しい順序で表示されないことがわかります。私は姓でソートし、姓が一致したら名でソートすることを望んでいました。
これがどのように機能するかについては、何かわからないようです。もちろん、これを別の方法で(awkを使用して)行うこともできますが、ソートを理解したいと思います。
Mac OS Xでは標準のBashシェルを使用しています。