免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5340 | 回复: 2
打印 上一主题 下一主题

[文本处理] Shell 进行 URL编码 [复制链接]

论坛徽章:
40
水瓶座
日期:2013-08-15 11:26:422015年辞旧岁徽章
日期:2015-03-03 16:54:152015年亚洲杯之乌兹别克斯坦
日期:2015-03-27 14:01:172015年亚洲杯之约旦
日期:2015-03-31 15:06:442015亚冠之首尔
日期:2015-06-16 23:24:37IT运维版块每日发帖之星
日期:2015-07-01 22:20:002015亚冠之德黑兰石油
日期:2015-07-08 09:32:07IT运维版块每日发帖之星
日期:2015-08-29 06:20:00IT运维版块每日发帖之星
日期:2015-08-29 06:20:00IT运维版块每日发帖之星
日期:2015-10-10 06:20:00IT运维版块每日发帖之星
日期:2015-10-11 06:20:00IT运维版块每日发帖之星
日期:2015-11-10 06:20:00
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-08-14 13:54 |只看该作者 |倒序浏览
本帖最后由 forgaoqiang 于 2013-08-14 14:04 编辑

文件名称 urlencode.sh
  1. #!/bin/sh
  2. # 从环境变量中读取数据
  3. if test -z "$1"
  4.         then
  5.                 echo "Lack of Argument!!"
  6.                 return 1
  7. fi
  8. echo "$1" |
  9. LANG=C awk '
  10. function char2hex(char){
  11.         for(j=0;j<256;j++)
  12.         {
  13.                 tmp=sprintf("%c",j);
  14.                 if(tmp==char){
  15.                         return sprintf("%%%X",j);
  16.                 }
  17.         }
  18.         return char;
  19. }
  20. BEGIN{
  21.         FS="";
  22.    OFS="";
  23. }
  24. {
  25.         for(i=1;i<=NF;i++) $i=char2hex($i);
  26.         print;
  27. }
  28. '
复制代码
使用方法
./urlencode.sh "www.chinaunix.net/forum.php?mod=post&balabalba"
话说挺牛x的思想,使用awk继续两次 %X 这样UTF-8也能进行编码,中文内容也不在话下~~

论坛徽章:
15
2015年辞旧岁徽章
日期:2015-03-03 16:54:15双鱼座
日期:2015-01-15 17:29:44午马
日期:2015-01-06 17:06:51子鼠
日期:2014-11-24 10:11:13寅虎
日期:2014-08-18 07:10:55酉鸡
日期:2014-04-02 12:24:51双子座
日期:2014-04-02 12:19:44天秤座
日期:2014-03-17 11:43:36亥猪
日期:2014-03-13 08:13:51未羊
日期:2014-03-11 12:42:03白羊座
日期:2013-11-20 10:15:18CU大牛徽章
日期:2013-04-17 11:48:45
2 [报告]
发表于 2013-08-28 14:20 |只看该作者
楼主看看这个。
http://www.gnu.org/software/gawk ... tml#Control-Letters
  1. %%
  2. Print a single ‘%’. This does not consume an argument and it ignores any modifiers.
复制代码

论坛徽章:
40
水瓶座
日期:2013-08-15 11:26:422015年辞旧岁徽章
日期:2015-03-03 16:54:152015年亚洲杯之乌兹别克斯坦
日期:2015-03-27 14:01:172015年亚洲杯之约旦
日期:2015-03-31 15:06:442015亚冠之首尔
日期:2015-06-16 23:24:37IT运维版块每日发帖之星
日期:2015-07-01 22:20:002015亚冠之德黑兰石油
日期:2015-07-08 09:32:07IT运维版块每日发帖之星
日期:2015-08-29 06:20:00IT运维版块每日发帖之星
日期:2015-08-29 06:20:00IT运维版块每日发帖之星
日期:2015-10-10 06:20:00IT运维版块每日发帖之星
日期:2015-10-11 06:20:00IT运维版块每日发帖之星
日期:2015-11-10 06:20:00
3 [报告]
发表于 2013-08-28 15:09 |只看该作者
哦 当时 没有看官方文档 自己做了简单的测试 % %% 以为是做两次计算了

⊙﹏⊙b汗 感谢提醒~

rdcwayx 发表于 2013-08-28 14:20
楼主看看这个。
http://www.gnu.org/software/gawk ... .html#Control-Lette ...
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP