อะไรคือความแตกต่างระหว่าง เรียงลำดับ -t' ' -k1,1n -k2,2n
และ เรียงลำดับ -t' ' -k1,2n
?
คุณช่วยยกตัวอย่างได้ไหม
ฉันพยายามแล้ว:
logan@logan-mainPC:~/my-test/learn-sort$ cat myage
อายุของฉัน 1
อายุของฉัน 100
อายุของฉัน 2
อายุผม200
logan@logan-mainPC:~/my-test/learn-sort$ cat myage | เรียงลำดับ -k2,3
อายุของฉัน 1
อายุของฉัน 100
อายุของฉัน 2
อายุผม200
logan@logan-mainPC:~/my-test/learn-sort$ cat myage | เรียงลำดับ -k2,2 -k3,3
อายุของฉัน 1
อายุของฉัน 100
อายุของฉัน 2
อายุผม200
logan@logan-mainPC:~/my-test/learn-sort$ cat myage | เรียงลำดับ -k2,2 -k3,3n
อายุของฉัน 1
อายุของฉัน 2
อายุของฉัน 100
อายุผม200
ฉันคิดว่า เรียงลำดับ -k2,3
เรียงลำดับ 'อายุ 1', 'อายุ 100', ... และ เรียงลำดับ -k2,2 -k3,3
เรียงลำดับ 'อายุ', 'อายุ',... จากนั้น '1', '100', .... เนื่องจากพวกเขาทั้งหมดถือว่าคอลัมน์เป็นสตริง พวกเขาให้ผลลัพธ์เดียวกัน
แต่ เรียงลำดับ -k2,2 -k3,3n
ให้ผลลัพธ์ที่แตกต่างกันเพราะถือว่าคอลัมน์ 3 เป็นตัวเลข
แต่แล้ว:
logan@logan-mainPC:~/my-test/learn-sort$ cat myage | เรียงลำดับ -k2,3n
อายุของฉัน 1
อายุของฉัน 100
อายุของฉัน 2
อายุผม200
ซึ่งเป็นเรื่องที่แปลก พบว่าสาเหตุเป็นเพราะคอลัมน์ 2 ไม่ใช่ตัวเลข
logan@logan-mainPC:~/my-test/learn-sort$ cat myage | จัดเรียง --debug -k2,3n
การเรียงลำดับ: ใช้กฎการเรียงลำดับ âen_AU.UTF-8â
sort: คีย์ 1 เป็นตัวเลขและครอบคลุมหลายฟิลด์
อายุของฉัน 1
^ ไม่ตรงกับคีย์
________
อายุของฉัน 100
^ ไม่ตรงกับคีย์
__________
อายุของฉัน 2
^ ไม่ตรงกับคีย์
________
อายุผม200
^ ไม่ตรงกับคีย์
__________
ขอบคุณ.