十六进制转十进制:
- echo '12af' | awk '{print strtonum("0x"$0)}'
-
4783
十进制转十六进制:
- echo "4783"|awk '{printf("%x\n",$0)}'
-
12af
八进制转十进制:
- echo '011257' | awk '{print strtonum($0)}'
- 4783
十进制转八进制:
- echo "4783"|awk '{printf("%o\n",$0)}'
-
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进制返回它们的数值.它还有一个功能,能截取一个字段里数字开头的并包含有其他非数字字符的字符串中的数字,有点饶口吧,举个栗子:- $ cat file
-
555 a ;
-
123c
-
c123
-
$ awk '{print "\""strtonum($0)"\""}' file
-
"555"
-
"123"
-
"0"
如果有些字段里包含空格啊,其他一些非数字字符等,可以用它来去掉。
阅读(16521) | 评论(2) | 转发(2) |