Saya mencoba mengurutkan pada beberapa kolom. Hasilnya tidak seperti yang diharapkan.
Inilah data saya (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
Berikut ini berfungsi dengan benar:
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
Namun, berikut ini tidak berfungsi seperti yang diharapkan:
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
Saya mencoba untuk mengurutkan berdasarkan nama keluarga dan kemudian dengan nama depan, tetapi Anda akan melihat Villamors tidak dalam urutan yang benar. Saya berharap untuk mengurutkan berdasarkan nama keluarga, dan kemudian ketika nama keluarga cocok, untuk mengurutkan berdasarkan nama depan.
Sepertinya ada sesuatu tentang bagaimana ini seharusnya bekerja saya tidak mengerti. Saya bisa melakukan ini dengan cara lain tentu saja (menggunakan awk), tetapi saya ingin mengerti semacam itu.
Saya menggunakan Bash shell standar di Mac OS X.
Dengan GNU
sort
Anda melakukannya seperti ini, tidak yakin tentang MacOS:Perbarui sesuai komentar. Dikutip dari
man sort
:sumber
-k
memasukkan sebanyak mungkin.sort
akan membandingkan seluruh baris. Atau dengan GNUsort
yang bisa Anda gunakan-s
untuk sortir yang stabil.