printf -- format and print date 通过printf的选项格式化输出数据
基本英文学习
二进制:binanry number
八进制:otcal number
十进制:decimal number
十六进制: hexadecimal number
1、基本的打印输出(默认不换行\n换行)
# printf "hello,world" hello,world #printf "hello,world\n" hello,world
2、进制的转换
%x 十六进制
%d 十进制
%o 八进制
十进制转16进制
# printf "%x\n" 27 1b # printf "%x\n" 19713 查到占用较高CPU的线程号转换为16进制,以便于jstack查看 4d01
16进制转十进制
# printf "%d\n" 0x1b 27 # printf "%d\n" 0x4d01 19713
(注意 转换进制可以使用bc命令 如装换成为2进制) ibase输入的进制;obase输出的进制)
10进制转为2进制
# echo 'obase=2;10'|bc 1010
带变量的处理常用在shell脚本中
# a=10 # echo "obase=2;$a" |bc 1010
2进制转换10进制
# echo 'ibase=2;111'|bc 7
综合的高级用法:
# cat file.txt 100 200 300 # awk‘{print "ibase=10;obase=2;" $1}‘file.txt |bc |xargs printf "%08d\n" 01100100 11001000 100101100