Saya punya file html dengan banyak teks UTF-8% -terkode dalam URL.
Misalnya "% D1% 80% D0% B5% D1% 81% D1% 83% D1% 80% D1% 81% D1% 8B" singkatan dari "ресурсы" ("sumber daya" dalam bahasa Rusia).
Tugasnya adalah untuk mengganti semua substring tersebut dengan teks UTF-8 yang dapat dibaca.
Untuk menyederhanakan tugas kami dapat mempertimbangkan tidak ada %
penggunaan tanda lain dalam file. Digit huruf dapat berupa huruf besar dan kecil.
Saya menduga ini bisa dilakukan elegan dengan sed
, perl
, awk
atau sesuatu tetapi tidak tahu bagaimana.
Aplikasi web ini sepertinya melakukan trik dengan teks yang Anda rekatkan di sana.
Dengan perl:
Atau dengan
URI::Escape
:sumber
$_
gnu.org/software/bash/manual/html_node/Special-Parameters.html$_
di sini adalahperl
's$_
, tidakbash
' s. Dalam kombinasi dengan-p
opsi, ekspresi perl dijalankan untuk setiap catatan input (catatan dibaca dari file yang diberikan sebagai argumen atau stdin jika tidak ada argumen yang disediakan), dengan catatan saat ini disimpan di$_
. Itu mirip denganawk
's$0
.Ada program yang disebut
convmv
yang dapat membantu Anda.Cukup gunakan
convmv --unescape /some_path/target_file
. Ini akan melakukan dry-run.Setelah Anda mengkonfirmasi, gunakan
convmv --notest --unescape /some_path/target_file
untuk melanjutkan.Homepage dari program ini adalah: http://j3e.de/linux/convmv/
sumber