awk 之 printf

awk 的print的就没什么好写的了

下面写写pirntf 吧

printf()函数是格式化输出函数,一般是对输出的结果进行格式化,比如 要保留几位小数  字符宽度啥的。

格式是这样的 printf (“格式”,区域1,区域2)

例如
awk ‘BEGIN{n1=124.113;n2=-1.224;n3=1.2345;printf(“%.2f,%.2u,%.2g,%X,%o\n”,n1,n2,n3,n1,n1);}’
124.11,18446744073709551615,1.2,7C,174
%d 十进制有符号整数
%u 十进制无符号整数
%f 浮点数
%s 字符串
%c 单个字符
%p 指针的值
%e 指数形式的浮点数
%x, %X 无符号以十六进制表示的整数
%0 无符号以八进制表示的整数
%g 自动选择合适的表示法
\n 换行
\f 清屏并换页
\r 回车
\t Tab符
\xhh 表示一个ASCII码用16进表示,其中hh是1到2个16进制数
这些是所有支持的格式,很多我没用过 下面介绍常用的几种
%s的例子

[root@CHSHA-CT-WWW-249 test]# df -h|awk ‘{printf (“%12s\n”,$1)}’ #默认是右对齐  加\n
文件系统
/dev/sda1
/dev/sda3
tmpfs
[root@CHSHA-CT-WWW-249 test]# df -h|awk ‘{printf (“%8s\n”,$1)}’
文件系统
/dev/sda1
/dev/sda3
tmpfs
[root@CHSHA-CT-WWW-249 test]# df -h|awk ‘{printf (“%-8s\n”,$1)}’  # 这里左对齐了
文件系统
/dev/sda1
/dev/sda3
tmpfs

%d的例子

[root@CHSHA-CT-WWW-249 test]# echo “3.5″|awk ‘{printf (“%d\n”,$1)}’  # 取整
3
[root@CHSHA-CT-WWW-249 test]# echo “3.5″|awk ‘{printf (“%04d\n”,$1)}’ # 不足位补0
0003

%f的例子

[root@CHSHA-CT-WWW-249 test]# echo “3.5″|awk ‘{printf (“%f\n”,$1)}’  #默认浮点为5个0
3.500000
[root@CHSHA-CT-WWW-249 test]# echo “3.5″|awk ‘{printf (“%.f\n”,$1)}’ # 四舍五入
4
[root@CHSHA-CT-WWW-249 test]# echo “3.5″|awk ‘{printf (“%3.2f\n”,$1)}’ #自定义位数
3.50

%s %c %d %f都是格式替代符
%-10s 指一个宽度为10个字符(-表示左对齐,没有则表示右对齐),任何字符都会被显示在10个字符宽的字符内,如果不足则自动以空格填充,超过也会将内容全部显示出来。
%-4.2f 指格式化为小数,其中.2指保留2位小数。

至于怎么打好出来好看,还得慢慢根据内容调试噢!



你可能感兴趣的:(字符串,十进制,十六进制,八进制)