我正在使用“dc”命令将十六进制转换为十进制
dc -e "16i$1p"
问题是它会破坏大量的输出
795717178255658627448611597034913344160729841275756347904742363029055\
1952200534008528895
如何防止这种行为?是否有一个选项或参数可以通过来禁用它?
这个问题既古老又冷酷,但我认为应该注意的是,在 GNUdc
和的较新版本上bc
,可以通过环境变量禁用此功能
n=FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
n+=FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
DC_LINE_LENGTH=0 dc -e "16i${n}p"
BC_LINE_LENGTH=0 bc <<<"ibase=16; $n"
bc 似乎也在做同样的事情。此规范中还列出了 70 个字符的限制:
http://pubs.opengroup.org/onlinepubs/000095399/utilities/bc.html
在我的脑海中,只是后处理:
echo "ibase=16; FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" | bc | perl -pe's/\\\n//'