Menggunakan coreutils sort
, bagaimana saya bisa mengurutkan secara numerik dengan nilai heksadesimal (bidang)? Saya mengharapkan sesuatu di sepanjang garis
sort -k3,3x file_to_sort
namun demikian, x
tidak ada.
Sunting: Solusi terbaik yang saya buat sejauh ini adalah:
{ echo ibase=16; cut -d' ' -f3 file_to_sort; } |
bc | paste -d: - file_to_sort | sort -t: -k1,1n | cut -d: -f2-
di mana cut -d' ' -f3
mengisolasi bidang pencarian (ini -k3,3
- ini mungkin berbeda, tentu saja), dan bc
apakah konversi ke desimal (memerlukan hex huruf besar, tanpa 0x
awalan, cocok dengan kasus saya). Lalu saya bergabung, mengurutkan, dan membagi kolom.
-k3,3
? Anda memiliki hex hex yang menatap 0x dan semua dengan panjang yang sama? Tidak ada campuran huruf besar / kecil? Jika ya, mereka harus disortir saat ditafsirkan sebagai string. Mungkin Anda bisa menunjukkan beberapa contoh data kepada kami?