การใช้ coreutils sort
ฉันจะจัดเรียงตัวเลขโดยใช้ค่าเลขฐานสิบหก (ฟิลด์) ได้อย่างไร ฉันคาดหวังบางอย่างตามสายของ
sort -k3,3x file_to_sort
แต่ดังกล่าวx
ไม่ได้อยู่
แก้ไข: ทางออกที่ดีที่สุดที่ฉันได้พบคือ:
{ echo ibase=16; cut -d' ' -f3 file_to_sort; } |
bc | paste -d: - file_to_sort | sort -t: -k1,1n | cut -d: -f2-
โดยที่cut -d' ' -f3
แยกฟิลด์ค้นหา (นี่คือ-k3,3
- ซึ่งอาจแตกต่างกันไปแน่นอน) และbc
ทำการแปลงเป็นทศนิยม (ต้องใช้ hex ตัวพิมพ์ใหญ่โดยไม่มี0x
คำนำหน้าตรงกับกรณีของฉัน) จากนั้นฉันเข้าร่วมเรียงลำดับและแยกคอลัมน์
-k3,3
? คุณมีเลขฐานสิบหกที่จ้องมองด้วย 0x และมีความยาวเท่ากันหรือไม่ ไม่มีส่วนผสมของตัวอักษรตัวใหญ่ / ตัวเล็ก? ถ้าใช่พวกเขาควรเรียงลำดับที่ถูกต้องเมื่อตีความว่าเป็นสตริง บางทีคุณสามารถแสดงข้อมูลตัวอย่างให้เราดูได้บ้าง