网上找到的方法
url=”要解码的URL地址”
printf (echo -n url | sed ‘s/\//\\/g;s/(%)([0-9a-fA-F][0-9a-fA-F])/\x\2/g’)”\n
批量方法
#!/bin/bash
names=$(ls)
for name in $names
do
dstName=$(echo -n $name | sed 's/\//\\/g;s/\(%\)\([0-9a-fA-F][0-9a-fA-F]\)/\\x\2/g')
dstName=$(echo -e $dstName)
echo $dstName
mv $name $dstName
done
主要原理是替换%号后面的文字为\x\2然后格式化输出,echo -e和printf效果类似。
不能用xargs -i 因为会取转\x\2从而去掉了\。