Используя 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
выполняет преобразование в десятичное число (требуется шестнадцатеричный регистр в верхнем регистре без 0x
префикса, соответствующий моему регистру). Затем я объединяю, сортирую и разделяю столбцы.
-k3,3
? У вас есть шестигранные нуберы, начиная с 0x и все одинаковой длины? Нет сочетания прописных и строчных букв? Если да, они должны сортироваться правильно, когда интерпретируются как строки. Может быть, вы можете показать нам пример данных?