bash
次のコマンドで実行される操作を元に戻したい:
$ echo $((62#a39qrT))
9207903953
つまり、10 進数の 9207903953を基数 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
入力を変更しました。