Перевести массив данных из двоичной системы в 16ричную (Bin to hex)

Есть текстовый фаил в котором каждая строка в двоичной системе (256 символов), например: 000000111001101111101001101000101000111010110100010101111010011001111111100110101011010100000000110001010010101100000111011100011000001001111101101100110000100100010110101010110000110100010110011001110111111101111101111001011110110111111101011100010110

Таких строк достаточно много, и необходимо каждую строку перевести в 16ричную. Например,что бы данная выше строка выглядела как 39BE9A28EB457A67F9AB500C52B0771827DB30916AB0D16677F7DE5EDFD716 . Никак не могу разобраться как это сделать. Фаил со строками довольно большой, около 16 гб. Пробовал сделать через perl, но выдается ошибка.

Пробовал perl -M'Digest::hex qw(hex)' -ne 'chomp; print hex($_), "\n"' test.txt > result.txt

Результат - ошибка.


Ответы (2 шт):

Автор решения: LevAri

Попробовать реализовать свой конвертер - как вариант. https://binary2hex.ru/numberconverter.html?id=766783

Думаю, на github наверняка есть и готовые примеры кода.

→ Ссылка
Автор решения: Виктор

Если perl (Win):

perl -ne "$_ =~ s/([01]{8})/sprintf('%02X', oct('0b'.$1))/egm; print $_;" <test.txt >result.txt

perl (Linux):

perl -ne "\$_ =~ s/([01]{8})/sprintf('%02X', oct('0b'.\$1))/egm; print \$_;" <test.txt >result.txt

→ Ссылка