Saya memiliki file seperti ini:
FirstName, FamilyName, Address, PhoneNumber
Bagaimana cara mengurutkan berdasarkan FamilyName?
Saya memiliki file seperti ini:
FirstName, FamilyName, Address, PhoneNumber
Bagaimana cara mengurutkan berdasarkan FamilyName?
Jawaban:
Jika ini UNIX:
sort -k 2 file.txt
Anda dapat menggunakan beberapa -kbendera untuk mengurutkan di lebih dari satu kolom. Misalnya, untuk mengurutkan berdasarkan nama keluarga lalu nama depan sebagai pemecah ikatan:
sort -k 2,2 -k 1,1 file.txt
Opsi yang relevan dari "man sort":
-k, --key = POS1 [, POS2]
mulai kunci di POS1, akhiri di POS2 (asal 1)
POS adalah F [.C] [OPTS], di mana F adalah nomor field dan C adalah posisi karakter di field. OPTS adalah satu atau lebih opsi pemesanan satu huruf, yang menggantikan opsi pemesanan global untuk kunci itu. Jika tidak ada kunci yang diberikan, gunakan seluruh baris sebagai kunci.
-t, --field-separator = SEP
gunakan SEP alih-alih transisi non-blank ke blank
--field-separator=','jika Anda mungkin memiliki operator entri data yang memasukkan nilai untuk "Nama depan" seperti "Billy Bob" atau apa pun ... spasi dapat dengan mudah masuk ke data Anda jika Anda tidak melindunginya, tetapi koma relatif tidak mungkin.
-bopsi. Ini karena sortsebenarnya mempertimbangkan bahwa string yang akan diurutkan dimulai tepat setelah koma, dan bukan dari huruf pertama kolom. Selain itu, Anda mungkin perlu memberi awalan perintah dengan LC_ALL=C, untuk menghindari efek samping apa pun karena lokal, yang dapat terjadi bahkan pada file ASCII sederhana.
-b( --ignore-leading-blanks). Untuk memperjelas sedikit: echo -e 'aa<SPACE>a\na<SPACE><SPACE>b' | sort -k2memberi a<SPACE><SPACE>bpertama (kolom kedua dimulai setelah yang pertama non-blank to blank transition, dan <SPACE><SPACE>bsebelum <SPACE>a), tetapi dengan -bitu memberi aa<SPACE>aseperti yang diharapkan ( asebelum b).
FWIW, berikut adalah metode pengurutan untuk menunjukkan proses mana yang menggunakan memori paling baik.
memstat | sort -k 1 -t':' -g -r | less
Opsi pengurutan diatur ke kolom pertama, menggunakan: sebagai pemisah kolom, pengurutan numerik dan urutkan secara terbalik.
sort -nk2 file.txt
Karenanya Anda dapat mengubah nomor kolom.