Używając coreutils sort
, jak mogę sortować numerycznie według wartości szesnastkowej (pola)? Spodziewałem się czegoś podobnego
sort -k3,3x file_to_sort
jednak taki x
nie istnieje.
Edycja: Najlepsze rozwiązanie, jakie do tej pory wymyśliłem, to:
{ echo ibase=16; cut -d' ' -f3 file_to_sort; } |
bc | paste -d: - file_to_sort | sort -t: -k1,1n | cut -d: -f2-
gdzie cut -d' ' -f3
izoluje pole wyszukiwania (to jest -k3,3
- to może się oczywiście różnić) i bc
wykonuje konwersję na dziesiętną (wymaga dużej liczby szesnastkowej, bez 0x
prefiksu, pasującej do mojego przypadku). Następnie łączę, sortuję i dzielę kolumny.
-k3,3
? Czy masz nubery sześciokątne wpatrujące się w 0x i wszystkie tej samej długości? Brak połączenia wielkich / małych liter? Jeśli tak, powinny być odpowiednio posortowane, gdy są interpretowane jako łańcuchy. Może możesz nam pokazać przykładowe dane?