- 论坛徽章:
- 8
|
本帖最后由 waker 于 2013-11-14 11:25 编辑
urlstr=$(echo "aas*2-2v%20w" |
awk '{
str1=""
for (i=0;i<=16;i++){
hex[sprintf("%X",i)]=i;
}
for (i=1;i<=length($0);i++)
{ c=substr($0,i,1)
if (c=="+") printf (" ");
else if (c=="%") {
printf ("%c",hex[substr($0,++i,1)]*16+hex[substr($0,++i,1)]); #使用printf方法,可以正常输出转码后的字符
#str1=str1""(hex[substr($0,++i,1)]*16+hex[substr($0,++i,1)]); #这一步就出错了,如果不使用printf方法,怎么赋值?有什么好的转换方法?
}
else
printf(c)
str1=str1""c
}
printf "\n";
printf (str1) #验证变量赋值是否正确
printf "\n";
}') |
|