printf -- format and print date 通过printf的选项格式化输出数据
参考: http://www.computerhope.com/unix/uprintf.htm
基本英文学习
二进制:binanry number
八进制:otcal number
十进制:decimal number
十六进制: hexadecimal number
1 基本的打印输出(默认不换行\n换行)
[[email protected] gold]# printf "hello,world"
hello,world[[email protected] gold]#
[[email protected] gold]#printf "hello,world\n"
hello,world
2 进制的转换
%x 十六进制
%d 十进制
%o 八进制
十进制转16进制
[[email protected] gold]# printf "%x\n" 27
1b
16进制转十进制
[[email protected] gold]# printf "%d\n" 0x1b
27
(注意 转换进制可以使用bc命令 如装换成为2进制) ibase输入的进制;obase输出的进制)
10进制转为2进制
[[email protected] gold]# echo ‘obase=2;10‘|bc
1010
带变量的处理常用在shell脚本中
[[email protected] tmp]# a=10
[[email protected] tmp]# echo "obase=2;$a" |bc
1010
2进制转换10进制
[[email protected] gold]# echo ‘ibase=2;111‘|bc
7
综合的高级用法:
[[email protected] tmp]# cat file.txt 100 200 300
[[email protected] tmp]# awk ‘{print "ibase=10;obase=2;" $1}‘ file.txt |bc |xargs printf "%08d\n" 01100100 11001000 100101100
3格式化输出对齐(中文和英文混合效果不明显)
语法: %flags width.precision format-specifier
- 是flag 左对齐 默认右对齐
12是width表示字符占用的长度 长度多余补空格,长度不够字符串照样显示。
.precision 表示浮点数的小数位