Próbuję sortować według wielu kolumn. Wyniki nie są zgodne z oczekiwaniami.
Oto moje dane (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
Następujące działa poprawnie:
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
Ale następujące działania nie działają zgodnie z oczekiwaniami:
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
Próbowałem sortować według nazwiska, a następnie imienia, ale zobaczysz, że Villamors nie są w prawidłowej kolejności. Miałem nadzieję, że posortuję według nazwiska, a potem, gdy nazwiska będą pasować, posortuję według imienia.
Wydaje się, że jest coś w tym, jak to powinno działać, czego nie rozumiem. Mógłbym to zrobić oczywiście w inny sposób (używając awk), ale chcę to zrozumieć.
Używam standardowej powłoki Bash w Mac OS X.