Linux printf命令:格式化输出数据
printf 是 Linux 下的格式化输出命令,它和 C 语言中的 printf 命令有点类似,都是用于将数据进行格式化输出。
printf 命令的基本格式如下:
格式化指定符中的控制字母及功能如表 1 所示。
	
除此之外还有修饰符用来进一步控制输出:
printf 命令常用的输出格式有以下三种:
由以上可以得出以下结论:
需要注意的事项如下:
【例 1】printf命令的基本用法。
【例 2】输出浮点类型数。
声明:《Linux系列教程》为本站“54笨鸟”官方原创,由国家机构和地方版权局所签发的权威证书所保护。
	printf 命令的基本格式如下:
[root@bogon ~]# printf "format string" 输出内容
format string 是格式化输出的关键。它通常使用文本元素和格式化指定符来具体指定如何呈现格式化输出。格式化指定符是一种特殊的代码,会指明显示什么类型的变量以及如何显示。格式化指定符中的控制字母及功能如表 1 所示。
| 控制字母 | 功 能 | 
|---|---|
| c | 将一个数作为 ASCII 显示 | 
| d | 显示一个整数值 | 
| i | 和 d —样,也是显示一个整数值 | 
| e | 用科学计数法显示一个数 | 
| f | 显示一个浮点值 | 
| g | 用科学计数法或浮点数显示(选择较短的格式) | 
| o | 显示一个八进制数 | 
| s | 显示一个文本字符串 | 
| x | 显示一个十六进制值 | 
| X | 显示一个十六进制值,但使用大写字母 A~F | 
除此之外还有修饰符用来进一步控制输出:
- %:表示格式说明的起始符号,不可缺少。
 - -(减号):有 - 表示左对齐输出,如省略表示右对齐输出。
 - 0:有 0 表示指定空位填 0,如省略表示指定空位不填。
 - m.n:m 指域宽,即对应的输出项在输出设备上所占的字符数;n 指精度,用于说明输出的实型数的小数位数。为指定 n 时,隐含的精度为 n=6 位。
 - l 或 h:l 对整型指 long 型,对实型指 double 型;h 用于将整型的格式字符修正为 short 型。
 
printf 命令常用的输出格式有以下三种:
- %ns:输出字符串:输出 n 位的字符串。
 - %ni:输出整数:输出 n 位的整数。
 - %m.nf:输出浮点数:m 位整数和 n 位小数。
 
由以上可以得出以下结论:
- %s:用于显示一个字符串变量。
 - %d 或 %i:用于显示一个整数值。
 - %e:用科学计数法显示较大的值。
 
需要注意的事项如下:
- printf 命令默认输出结果没有换行符,需要手动添加“\n”。
 - printf 命令后面不能接受管道符参数,如:df | print '%s'是错误的。
 - printf 命令后面也不能直接跟文件名,如:printf '%5s'/etc/passwd是错误的。
 - printf 命令后可以跟系统命令执行的结果,如:printf '%s' $(cat/etc/password)'。
 
【例 1】printf命令的基本用法。
	[root@bogon ~]# printf "%s\n" 1 2 3 4
	1
	2
	3
	4
【例 2】输出浮点类型数。
	[root@bogon ~]# printf "%f\n" 1 2 3 4
	1.000000
	2.000000
	3.000000
	4.000000
声明:《Linux系列教程》为本站“54笨鸟”官方原创,由国家机构和地方版权局所签发的权威证书所保护。