Tengo un archivo html con mucho texto UTF-8 codificado en% en las URL.
Por ejemplo, "% D1% 80% D0% B5% D1% 81% D1% 83% D1% 80% D1% 81% D1% 8B" significa "ресурсы" ("recursos" en ruso).
La tarea es reemplazar todas esas subcadenas con texto legible UTF-8.
Para simplificar la tarea, podemos considerar que no hay otro %
uso de signos en el archivo. Los dígitos de las letras pueden ser mayúsculas y minúsculas.
Sospecho que esto se puede hacer con elegancia sed
, perl
, awk
o algo, pero no saben cómo.
Esta aplicación web parece hacer el truco con el texto que pegas allí.
Con perl:
O con
URI::Escape
:fuente
$_
gnu.org/software/bash/manual/html_node/Special-Parameters.html$_
aquí hayperl
's$_
, nobash
' s. En combinación con la-p
opción, la expresión perl se ejecuta para cada registro de entrada (los registros se leen de los archivos dados como argumento o stdin si no se proporciona ningún argumento), con el registro actual almacenado$_
. Eso es similar aawk
's$0
.Hay un programa llamado
convmv
que puede ayudarlo.Simplemente use
convmv --unescape /some_path/target_file
. Hará una carrera en seco.Una vez que haya confirmado, use
convmv --notest --unescape /some_path/target_file
para continuar.La página de inicio de este programa es: http://j3e.de/linux/convmv/
fuente