Я пытаюсь исправить ошибку кодирования на заархивированной странице html. Моя проблема в том, что sed ведет себя странно, так как он не захватывает специальные символы в данных. Я пробовал как с ключом, так и без него.SED grabbing специальные символы
Мои данные следующие: Budapesti ??p?t?©szeti Filmnapok k??l??nkiad??s
СЕПГ Команда:
sed -i.bak 's|Budapesti.*|REPLACE|g' index.html
и результат я получаю без Recode:
REPLACE�t?�szeti Filmnapok k??l??nkiad??s
В результате я м ожидается:
REPLACE
Кажется, что это связано с кодировкой. Если я сначала сделаю recode iso-8859-2 index.html
, sed отлично работает и получит ожидаемый результат.
Вот шестигранные байт для i ??p?t?Šs
части до того Recode:
69 20 3F 3F 70 3F AD 74 3F A9 73
и после Recode:
69 20 3F 3F 70 3F C2 AD 74 3F C5 A0 73
Кстати, это то, что я получаю без Recode:
REPLACEt?Šs
52 45 50 4C 41 43 45 AD 74 3F A9 73
Я использую последнюю версию gsed (GNU sed) 4.2.2.
Какой выход вы ожидаете? – anubhava
Ваша первая команда работает для меня. –
Кажется, что это связано с кодировкой. Я добавил дополнительную информацию к вопросу, включая команду recode и шестнадцатеричный код файла на проблемные символы. – zsero