我有一個包含十六進制數字列表的文件,如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