【发布时间】:2013-01-06 11:00:37
【问题描述】:
我想反转下面bash命令执行的操作:
$ echo $((62#a39qrT))
9207903953
即将 十进制 9207903953 转换为 base 62,保持 bash 标准为 {0..9},{a..z},{A..Z}。
我知道我可以使用bc 来做到这一点,但我必须手动转换每个字符。例如,我目前这样做:
BASE62=($(echo {0..9} {a..z} {A..Z}))
for i in $(echo "obase=62; 9207903953" | bc)
do
echo -n ${BASE62[$i]} #Doesn't work if bc's output contains leading zeroes
done
必须有一种方法可以以一种不那么“黑客”的方式来做到这一点。你知道一种更有效的方法吗?
编辑:更改 bc 输入。
【问题讨论】:
标签: bash shell base-conversion bc