Преобразование символов Hex в символы ASCII в командной строке Linux

Linux Logo Applications

У вас есть куча шестнадцатеричных символов и вы хотите преобразовать их в читаемую десятичную систему (ASCII)?

Существует несколько способов преобразования шестнадцатеричных символов в ASCII в Linux. При необходимости вы также можете использовать эти способы в сценарии командной строки.

Преобразование шестнадцатеричной системы в ASCII в Linux

Шестнадцатеричная система счисления - это система счисления, в которой используется комбинация цифр (0-9) для представления значений от 0 до 9 и букв (A-F) для представления значений от 10 до 15.

Это может показаться сложным, но это все же лучше, чем двоичная система счисления, где все равно 1 и 0.

Несколько десятилетий назад шестнадцатеричная система широко использовалась в микроконтроллерах. Вы все еще можете увидеть его в использовании, особенно в цветовой палитре Hex, которая используется для представления различных оттенков цветов.

С другой стороны, ASCII означает American Standard Code for Information Interchange и имеет совершенно другое применение, чем шестнадцатеричная система. ASCII - это метод, который используется для преобразования символов обычного языка в двоичный, чтобы компьютеры могли понимать инструкции с нашей стороны.

В этом руководстве я расскажу о различных способах, с помощью которых вы сможете легко преобразовать шестнадцатеричный код в ASCII.

Рассмотрим следующий шестнадцатеричный код (постановка задачи), который я хочу преобразовать:

672d736f66742e696e666f

Если мне удастся преобразовать приведенный выше шестнадцатеричный код, преобразование ASCII должно выглядеть следующим образом:

g-soft.info

Использование команды xxd

xxd - это утилита командной строки, которая может создать шестнадцатеричный дамп из заданного текста и наоборот.

Сначала я собираюсь ввести шестнадцатеричную строку с помощью команды echo и соединить ее с xxd с помощью pipe.

Здесь опция команды -r используется для преобразования шестнадцатеричного кода в ASCII, а -p - для печати обычного текста.

Вывод выше смешивается с подсказкой в терминале, потому что преобразованный вывод не имеет символа новой строки. Чтобы сделать его более читабельным, вы можете добавить echo '' к приведенной выше команде.

Использование команды printf

Да, вы можете преобразовать шестнадцатеричный код в ASCII с помощью команды bash printf. Здесь я собираюсь использовать опцию \x, которая будет принимать на вход 1 или 2 цифры, как показано ниже:

Нет никаких проблем, если в конце шестнадцатеричной строки будет одна цифра, и она будет работать нормально.

Использование команды dc

Возможно, вам интересно, как мы можем использовать калькулятор (dc) для преобразования hex в ASCII, и я покажу вам, как именно.

Здесь 16i используется для указания того, что вы имеете дело с шестнадцатеричным радиксом, а P используется для печати вывода команды dc.

Используя приведенную выше команду, вы получите результат, аналогичный приведенному ниже

Использование команды Perl

Если в вашей системе установлен Perl, вы можете легко преобразовать hex в ASCII с помощью этого метода. Просто замените мой шестнадцатеричный код на ваш в приведенной команде и все.

И вы получите результаты, как показано ниже

Использование команды sed

Этот метод немного похож на описанный выше, но здесь вы используете sed для фильтрации и преобразования шестнадцатеричного кода в ASCII с помощью обычного выражения.

Используя конвейеризацию, мы собрали хэш-строку через echo, преобразовали ее с помощью sed в заданное выражение и получили результат в заданном виде.

Преобразование шестнадцатеричных строк, хранящихся в текстовом файле

Если у вас есть шестнадцатеричная строка, хранящаяся в текстовом файле, вы можете использовать этот метод для преобразования сохраненной шестнадцатеричной строки в ASCII.

Моя шестнадцатеричная строка хранится в файле hex.txt, поэтому для преобразования этой строки мне нужно выполнить следующую команду:

Безусловно, это самый удобный способ, поскольку вам не придется вводить шестнадцатеричные строки снова и снова, а самое лучшее - вы можете хранить несколько шестнадцатеричных строк и преобразовывать их с помощью одной и той же команды.

Avatar for Gnostis
Gnostis
Добавить комментарий