似乎AWK在无符号十六进制格式说明符方面存在问题:
echo 0x80000000 | awk '{printf("0x%08x\n", $1)}'
回复:0x7fffffff
这是awk的已知问题吗?
谢谢!
答案 0 :(得分:1)
问题是awk只在十进制时自动将输入参数转换为数字。但这应该有效:
echo 0x80000000 | awk'{printf(“0x%08x \ n”,strtonum($ 1))}'
这里有所有解释,在strtonum部分: http://www.gnu.org/manual/gawk/html_node/String-Functions.html#String-Functions
答案 1 :(得分:0)
这里没有看到它,虽然我不能像你一样使用十六进制输入,但转换为十进制没问题。
$ echo 2147483648 | awk '{printf("0x%08x\n", $1)}'
0x80000000
如果您想了解我们所使用的平台(这是GNU awk 3.1.5),我们可以为您提供更多帮助。