Как преобразовать специальный шестнадцатеричный символ из html-страницы в bash?

У меня есть сценарий, который обрабатывает некоторую информацию, поступающую с веб-страницы. Я предполагаю, что из-за кодирования страницы некоторые специальные символы кодируются в шестнадцатеричном виде. Например, у меня есть строка «% 2f», которая должна быть переведена в «/».

Как я могу в bash перевести эти специальные символы в hex в ASCII? Есть идеи?

2 Solutions collect form web for “Как преобразовать специальный шестнадцатеричный символ из html-страницы в bash?”

У Bash есть встроенный printf , который может быть примерно таким же, как мы могли бы узнать в C. Синтаксис немного отличается.

printf '\x2f'

Если вам не нужно беспокоиться о проблемах согласования данных более высокого уровня, вы можете просто преобразовать URL-адрес с помощью этой функции:

 function deUrl() { printf "${1//%/\\x}" } 

(Он преобразует каждый % в \x , а затем печатает его с помощью printf.)

Такие объекты могут быть декодированы с помощью этого однострочного интерфейса python:

 $ python -c "import urllib, sys; print urllib.unquote(sys.argv[1])" "%2f" / 

Код не ограничивается одним символом. Он будет принимать более сложные строки:

 $ python -c "import urllib, sys; print urllib.unquote(sys.argv[1])" "%2d and %2f" - and / 

Здесь urllib.unquote Python.

  • hexedit: изменить количество столбцов (байт на строку)
  • Сценарий Bash: hex
  • Добавление Echo
  • Linux и Unix - лучшая ОС в мире.