Я пытаюсь написать скрипт для поиска шестнадцатеричных строк в текстовом файле и преобразования их в обратный порядок байтов. У меня проблема в том, что некоторые из шестнадцатеричных строк 16-битные, а некоторые - 64-битные. Я использовал пакет Perl для упаковки и распаковки 16-битных шестнадцатеричных чисел, и это работает нормально, а 64-битные - нет.
print unpack("H*", (pack('I!', 0x20202032))). "\n"; #This works, gives 32202020
#This does not
print unpack("H*", (pack('I!', 0x4f423230313430343239303030636334))). "\n";
Я пробовал второй с q и Q (где я получаю ffffffffffffffff). Я подхожу ко всему этому неправильно?
В качестве предыстории у меня есть текстовый файл с разделителями в несколько гигабайт, в котором есть шестнадцатеричные строки в обратном порядке байтов, как описано выше. Также столбцы файла не стандартны; иногда шестнадцатеричные строки появляются в одном столбце, а иногда и в другом. Мне нужно преобразовать шестнадцатеричные строки в их обратный порядок байтов.