Как преобразовать специальный шестнадцатеричный символ из 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.

  • Добавление Echo
  • Почему xxd не показывает знак порядка байтов?
  • Какой шестнадцатеричный код для раздела / boot
  • Interesting Posts

    как запустить новое программное обеспечение без обновления GLIBC?

    Можно ли установить программное обеспечение KDE на GNOME?

    Как настроить mod_rewrite с псевдонимом в Apache 2.4?

    Понять смысл `$ _`

    Как открыть mysql бэкэнд

    Как часто обновляется значение PSS для данного процесса в / proc / pid / smaps

    Как ограничить все процессы пользовательского режима доступом к физической памяти только в определенном диапазоне?

    Создание массивов с расширением брекета в цикле

    Пытается получить доступ к переменной среды (массиву), объявленной в ~ / .profile из сценария оболочки

    Проблема с отказом от переключения Linux между двумя коммутаторами cisco

    как сжимать все изображения, jpg в каталоге в другой каталог, используя imagemagick

    Установите несколько пакетов с помощью разных методов в одной команде Yum

    Установлен OpenSSH на Mint 17, но он, похоже, не работает

    Предоставить права на создание / управление пользователями

    Микрофон НЕ работает на Ubuntu 16.04.02TLS GNOME

    Linux и Unix - лучшая ОС в мире.