我有一个包含十六进制数字列表的文件,如0x12345678
每行一个。如何用awk对十六进制数进行计算?
我想对它们进行计算。为此,我想到了使用awk
。但如果用awk
打印十六进制数字很容易使用printf
函数,我还没有找到一种方法来解释十六进制输入而不是文本(或0
,转换为整数在x
停止)。
awk '{ print $1; }' // 0x12345678
awk '{ printf("%x\n", $1)}' // 0
awk '{ printf("%x\n", $1+1)}' // 1 // DarkDust answer
awk '{ printf("%s: %x\n", $1, $1)}' // 0x12345678: 0
是否可以打印,例如:值+1?
awk '{ printf(%x\n", ??????)}' // 0x12345679
编辑:在其他语言中的一种衬里的欢迎! (如果合理长度;-))
这不适用于我的Linux系统(debian):它打印出1.我的猜测是,awk尝试将值解释为十进制,并在x后面的0处停止,忽略0x是十六进制符号前缀。 – 2010-09-10 08:27:25