您的位置:首页 > 运维架构 > Shell

Linux学习日记 —— 11.2.2 Shell编程-字符截取命令-printf命令

2018-03-06 22:36 1746 查看
严格来说,printf命令并不是字符提取命令。

命令格式:printf ‘输出类型输出格式’ 要输出的内容
作用:把要输出的内容,按照指定的格式匹配输出。
注意:printf不能直接输出文件中的内容,也不支持管道符。


输出类型:

%ns:输出字符串。n是数字指代输出几个字符

%ni:输出整数。n是数字指代输出几个数字

%m.nf:输出浮点数。m和n是数字,指代输出的整数位数和小数位数。如%8.2f代表共输出8位数,其中2位是小数,6位是整数。

输出格式:

\a: 输出警告声音

\b: 输出退格键,即backspace键

\f: 清除屏幕

\n: 换行

\r: 回车,即enter键

\t: 水平输出退格键,即tab键

\v: 垂直输出退格键,即tab键

示例:
[root@localhost ~]# printf %s 1 2 3 4 5 6
123456

[root@localhost ~]# printf %s%s%s 1 2 3 4 5 6
%s%s123456

[root@localhost ~]# printf '%s%s%s\n' 1 2 3 4 5
12345

[root@localhost ~]# printf '%sa%s%s\n' 1 2 3 4 5 6
1a234a56

[root@localhost ~]# printf '%s%s%s\n' "1 2 3 4 5 6"
1 2 3
4 5 6

[root@localhost ~]# printf '%5s\n' 1 2 3
1
2
3

[root@localhost ~]# printf '%5s\n' "123456"
123456

[root@localhost ~]# printf '%5s\n' "123"
123

[root@localhost ~]# printf '%8i\n' 3
3

[root@localhost ~]# printf '%5.2f\n' 3
3.00

注意:输出格式%s必须用引号括起来(单引号或双引号都行)。


printf 输出文本内容:
[root@localhost ~]# vi student.txt
ID   Name    PHP   Linux   MySQL  Ave
1   Liming   82     95      86    87.5
2   Sc       74     96      87    85.5
3   Gao      99     83      93    91.5

[root@localhost ~]# printf '%s' $(cat student.txt)
#不调整输出格式

[root@localhost ~]# printf '%s\t %s\t %s\t %s\t %s\t %s\n' $(cat student.txt)
#调整格式输出
#直接连续输出所有文本


说明:

在awk命令的输出中支持print和printf。

print会在每个输出之后,自动加上一个换行符。(Linux默认没有print命令)。

printf是以指定的标准格式输出,并不会自动加入换行符,一般都是手工加\n。

awk中使用的print或printf并不是Linux的命令,它们是awk中自带的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux