在Linux中将十六进制转换为十进制的命令?

时间:2020-07-14 01:50:50

标签: linux awk sed

我正在尝试将地图文件中的十六进制值转换为十进制值。例如,这是文件的片段

.bss       0xc     g2.comms
.bss       0xc     g2.comms
.bss       0xa     g2.comms
.bss       0x14    g2.comms
.rodata    0x64    g2.comms
.rodata    0x1ac   g2.comms
.rodata    0x270   g2.comms
.rodata    0x18    g2.comms

有没有一行命令可以将第二列从十六进制转换为十进制?

1 个答案:

答案 0 :(得分:1)

如果您有GNU awk(gawk):

$ awk -n '{print $2+0}' file
12
12
10
20
100
428
624
24

-n(或--non-decimal-data)引起“输入数据中八进制和十六进制值的自动解释”。为了确保awk将第二列视为数字而不是字符串,我们在其中添加零:$2+0

相关问题