Декодирование URL Unix/Bash командной строки (без sed)
Я соскребаю сайт с завитком и разбираю, что мне нужно.
URL возвращаются с символами в кодировке Ascii, такими как
GET v2.12/...?fields={fieldname_of_type_Tab} HTTP/1.1
Как я могу преобразовать это в UTF-8 (символ) прямо из командной строки (в идеале что-то, что я могу передать |
к) чтобы результат был...
GET v2.12/...?fields={fieldname_of_type_Tab} HTTP/1.1
РЕДАКТИРОВАТЬ: Есть ряд решений с sed
но регулярное выражение, которое сопровождает его, довольно уродливо. Поскольку приведенный ответ с использованием Perl очень чистый, я надеюсь, что мы можем оставить этот вопрос открытым
1 ответ
Решение
Это на самом деле не utf8, а html-сущности
Попробуйте сделать это с помощью Perl:
$ echo 'http://domain.tld/?fields={fieldname_of_type_Tab}' |
perl -MHTML::Entities -pe 'decode_entities($_)'
Выход:
http://domain.tld/?fields={fieldname_of_type_Tab}