awk 16进制转10进制
awk 16进制转10进制
十六进制转十进制:
1.echo '12af' | awk '{print strtonum("0x"$0)}'
2.4783
十进制转十六进制:
1.echo "4783"|awk '{printf("%x\n",$0)}'
2.12af
八进制转十进制:
1.echo '011257' | awk '{print strtonum($0)}'
2.4783
十进制转八进制:
1.echo "4783"|awk '{printf("%o\n",$0)}'
2.11257
strtonum(str) : Examines str, and returns its numeric value. If str begins with a leading 0, strtonum() assumes that str is an octal number. If str begins with a leading 0x or 0X, strtonum() assumes that str is a hexadecimal number.
strtonum()函数把0开端的当作八进制,把0x或0X开端的当作16进制回来它们的数值.它还有一个功用,能截取一个字段里数字开端的并包富含别的非数字字符的字符串中的数字,有点饶口吧,举个栗子:
1.$ cat file
2.555 a ;
3.123c
4.c123
5.$ awk '{print "\""strtonum($0)"\""}' file
6."555"
7."123"
8."0"
假定有些字段里包括空格啊,别的一些非数字字符等,能够用它交游不断掉。
相关推荐