微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Bash:如何解码和编码特定的 URL 字符?

如何解决Bash:如何解码和编码特定的 URL 字符?

这个 awk 命令可以很好地一次性解码所有字符:

awk -niord '{printf RT?$0chr("0x"substr(RT,2)):$0}' RS=%..


但我需要命令来解码和编码特定的 URL 字符。例如,我只需要解码 %3d%26,反之亦然,对文件中的 =& 进行编码。

https%3a%2f%2fgoogle.com%2fsearch%3fq%3dstackoverflow%26param%3dvalue

解码所需的输出

https%3a%2f%2fgoogle.com%2fsearch%3fq=stackoverflow&param=value

所需的编码输出

https://google.com/search?q%3dstackoverflow%26param%3dvalue


更新

虽然可以使用 sed 's/%3d/\=/g' | sed 's/%26/\&/g'替换字符,但我仍在寻找一种方法来一次解码或编码某些特定字符,(将它们放在一个 sed 或 awk 或其他任何东西中,而不是使用两个 sed 命令)。欢迎使用 sed 以外的工具。

我需要将 %3d 替换为 =,将 %26 替换为 &,反之亦然。

谢谢

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。