转化为浮点型如11.051 再转化为取整数部分为11
(1)awk '{$0+=0;sub(/\..*/,'');print}' urfile
(2) echo '1.105100000000000e+01' | awk '{print sprintf('%d',$0);}'
echo 0x2A | gawk '$1=strtonum($1)' #科学计数法转十进制 printf '%f\n'3.1188622400e+06 echo 3.1188622400e+06 | awk '{printf('%f\n',$0)}'#科学计数法转十进制并保留两位小数 echo 3.1188622400e+06 | awk'{printf('%.2f\n',$0)}' #科学计数法转十进制并取整 printf '%.f\n'3.1188622400e+06 echo 3.1188622400e+06 | awk '{printf('%d\n',$0)}'#科学计数法转十进制并四舍五入取整 echo 3.1188622400e+06 | awk'{printf('%d\n',$0+0.5)}'
Shell进制转换小结
I: 利用obase, ibase和bc:ibase是输入数字的进制,而obase就是输出数字的进制了。很好记,i是input,o是output。
注意,16进制数字的F要大写,否则,结果为0,是错误的。
举例说明:
10进制转2进制:
10进制转16进制: (如果输入是10进制的话,ibase可省略)
16进制转2进制: