Задать вопрос
kapitansen
@kapitansen
Веб-погромист

Как с помощью bash заменить в файлах рекурсивно urlencoded строки на обычные?

Есть архив статического html-сайта, некоторые ссылки в котором сделаны типа "lista-fundaci%C3%B3n". Папки и файлы, соответственно, называются нормально - lista-fundación. При переходе по ссылке со спецсимволами сервер отдает 404. Как привести это в надлежащий вид? Пытаюсь составить команду для автозамены, но в bash я не силен.
  • Вопрос задан
  • 119 просмотров
Подписаться 1 Средний 7 комментариев
Решения вопроса 1
@Redeve
Веб-макаке не хватит и 640гБ
function urldecode() { : "${*//+/ }"; echo -e "${_//%/\\x}"; }
for f in encoded.html enpage.html; do
    urldecode `cat "$f"` > "$f"
done

urldecode()
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@zohan1993
devops
grep 'lista-fundaci%C3%B3n' -P -R -I -l * | xargs sed -i 's/lista-fundaci%C3%B3n/lista-fundación/g'
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы