码迷,mamicode.com
首页 > 系统相关 > 详细

总结linux下printf命令的用法

时间:2017-01-08 20:33:01      阅读:1781      评论:0      收藏:0      [点我收藏+]

标签:printf bc

printf  -- format and print date 通过printf的选项格式化输出数据


参考: http://www.computerhope.com/unix/uprintf.htm


基本英文学习


二进制:binanry number

八进制:otcal number

十进制:decimal number

十六进制: hexadecimal number

1 基本的打印输出(默认不换行\n换行)

[root@cuizhiliang gold]# printf "hello,world"

hello,world[root@cuizhiliang gold]# 

[root@cuizhiliang gold]#printf "hello,world\n"

hello,world


2 进制的转换

%x 十六进制

%d 十进制

%o 八进制


十进制转16进制

[root@cuizhiliang gold]# printf "%x\n" 27 

1b


16进制转十进制

[root@cuizhiliang gold]# printf "%d\n" 0x1b

27


(注意 转换进制可以使用bc命令 如装换成为2进制) ibase输入的进制;obase输出的进制) 

10进制转为2进制

[root@cuizhiliang gold]# echo ‘obase=2;10‘|bc

1010

带变量的处理常用在shell脚本中

[root@cuizhiliang tmp]# a=10

[root@cuizhiliang tmp]# echo "obase=2;$a" |bc

1010

2进制转换10进制

[root@cuizhiliang gold]# echo ‘ibase=2;111‘|bc

7




综合的高级用法:

[root@cuizhiliang tmp]# cat file.txt 
100
200
300
[root@cuizhiliang 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 表示浮点数的小数位



技术分享






本文出自 “燕子李三” 博客,请务必保留此出处http://cuidehua.blog.51cto.com/5449828/1890139

总结linux下printf命令的用法

标签:printf bc

原文地址:http://cuidehua.blog.51cto.com/5449828/1890139

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!