加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

AWK内的URL解码

发布时间:2020-12-13 23:08:22 所属栏目:Linux 来源:网络整理
导读:参见英文答案 Using awk printf to urldecode text????????????????????????????????????5个 我文件中的一列是url编码的,我必须解码该列,并需要根据列内的值执行一些操作.有什么方法可以解码awk中的那列吗? 解决方法 你必须根据你的文件格式进行调整,但基本
参见英文答案 > Using awk printf to urldecode text????????????????????????????????????5个
我文件中的一列是url编码的,我必须解码该列,并需要根据列内的值执行一些操作.有什么方法可以解码awk中的那列吗?

解决方法

你必须根据你的文件格式进行调整,但基本原则在这里(用GNU Awk 3.1.7测试):

sh$echo 'Hello%2C%20world%20%21' | awk '
     {
         for (i = 0x20; i < 0x40; ++i) {
             repl = sprintf("%c",i);
             if ((repl == "&") || (repl == ""))
                 repl = "" repl;
             gsub(sprintf("%%%02X",i),repl);
             gsub(sprintf("%%%02x",repl);
         }
         print
     }
 '
Hello,world !

如果你有gawk,你可以将它包装在一个函数中(贷记到brendanh in a comment below):

function urlDecode(url) {
    for (i = 0x20; i < 0x40; ++i) {
        repl = sprintf("%c",i);
        if ((repl == "&") || (repl == "")) {
            repl = "" repl;
        }
        url = gensub(sprintf("%%%02X",repl,"g",url);
        url = gensub(sprintf("%%%02x",url);
    }
    return url;
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读