นี่เป็นไวยากรณ์ "ดั้งเดิม" ที่ล้าสมัย (หรืออย่างน้อยล้าสมัย) สำหรับการระบุค่าฟิลด์และคอลัมน์ ซึ่งบันทึกไว้ใน จัดเรียงข้อมูล
:
ในระบบที่ไม่เป็นไปตาม POSIX 1003.1-2001 âsortâ รองรับ
ไวยากรณ์เริ่มต้นศูนย์แบบดั้งเดิม â+POS1 [-POS2]â สำหรับการระบุคีย์การเรียงลำดับ
คำสั่งดั้งเดิม âsort +A.X -B.Yâ เทียบเท่ากับ âsort -k
A+1.X+1,Bâ ถ้า Y คือ â0â หรือขาดหายไป มิฉะนั้นจะเทียบเท่ากับ âsort -k
A+1.X+1,B+1.Yâ
ในตัวอย่างที่คุณอ้าง:
เรียงลำดับ +0nr -2 +2d
มีตัวระบุสองชุด: "+0 -2
" และ "-2
". ครั้งแรกมี เอ=0
, ข=2
, วาย
ขาดและด้วยเหตุนี้จึงเท่ากับ -k0+1,2
เช่น. -k1,2
ในการจัดทำดัชนีแบบ 1 สมัยใหม่ ที่สองมี เอ=2
กับทั้งคู่ ข
และ วาย
ขาดจึงกลายเป็นเพียง -k3
.
ตัวเลือกตัวอักษรมีความหมายตามปกติเช่น
-d, --dictionary-คำสั่ง
พิจารณาเฉพาะช่องว่างและอักขระที่เป็นตัวอักษรและตัวเลขคละกัน
-n, --การเรียงลำดับตัวเลข
เปรียบเทียบตามค่าตัวเลขสตริง
-r, --ย้อนกลับ
กลับผลการเปรียบเทียบ
ดังนั้นผลลัพธ์จึงเป็นการเรียงลำดับตัวเลขแบบย้อนกลับในสองฟิลด์แรก -k1,2nr
ตามด้วยการจัดเรียงพจนานุกรมในฟิลด์ที่สาม (และถัดไป) -k3d
.
เดอะ ข้อมูล
หน้าไม่แนะนำให้ใช้ไวยากรณ์รูปแบบนี้:
สคริปต์ที่มีไว้สำหรับใช้กับโฮสต์มาตรฐานควรหลีกเลี่ยงแบบดั้งเดิม
ไวยากรณ์และควรใช้ â-kâ แทน ตัวอย่างเช่น หลีกเลี่ยง âsort +2â เนื่องจาก
อาจตีความได้ว่า âsort ./+2â หรือ âsort -k 3â ถ้าคุณ
สคริปต์ต้องทำงานบนโฮสต์ที่รองรับเฉพาะไวยากรณ์ดั้งเดิมเท่านั้น
สามารถใช้การทดสอบเช่น âif sort -k 1 </dev/null >/dev/null 2>&1; แล้ว
...â เพื่อตัดสินใจว่าจะใช้ไวยากรณ์ใด