Linux常用命令-printf

命令

printf

描述

Formats and prints ARGUMENTS under control of the FORMAT
格式化输出内容

用法

1
printf [-v var] "FORMAT" [arguments]

选项

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
"FORMAT"格式化选项
使用printf命令必须指定"FORMAT",支持以下字符格式用于格式转换,必须为每个item指定字符类型

字符格式
\\ 反斜杠\本身
\a 警告声
\b 退格键backspace
\f 换页符form-feed
\n 换行符newline
\r 回车carriage return
\t 水平tab
\v 垂直tab
\xhex 转换字符,hex为十六进制字符,例如\x24表示$符

字符类型
%c 显示为ASCII码
%d,%i 显示十进制整数
%e,%E 显示科学计数法数值
%f 显示为浮点数,如%.2f表示保留2位小数
%g,%G 显示科学计数法或浮点形式数值
%s 显示字符串,如%-10s表示宽度为10个字符(-表示左对齐,没有则表示右对齐),不足则用空格填充,超出会全部显示
%u 无符号整数
%% 显示%本身

修饰符
#[.#] 第一个#控制显示的宽度,第二个#表示小数点后的精度,如%3.2f
- 左对齐,默认右对齐,如%-15s
+ 显示数值的正负符号,如%+d
%ns n表示数字,s代表字符串string,即占多少个字符位,用于字段补齐,如%6s表示字段占用6个字符位
%ni n表示数字,i代表整数integer,即占多少个整数位
%N.nf N和n都是数字,f代表浮点数float,N表示整个浮点数位数,n表示小数位数,如%8.2f表示浮点数长度为8,其中保留2位小数

注意

示例

1
2
3
4
5
6
7
8
9
10
11
12
$ printf "%s is %d\n" "Tom" 20
Tom is 20
$ printf "hello, %s\n" "usera" "userb" "userc"
hello, usera
hello, userb
hello, userc
$ printf "%-10s %-3d\n" "usera" 80
usera 80
$ printf "%-10s %-3d\n" "userb" 1000
userb 1000
$ printf "%-10s %.2f\n" "userc" 12.3456
userc 12.35