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 (将#修改为@)