原文链接:http://blog.csdn.net/zgf19930504/article/details/51912765
printf 是linux 下的格式化输出命令,有点儿类似于python 和c 语言的printf 命令,但是应该没有c 语言的那么强大. printf 命令常用于linux 下的awk 编程, 平时使用输出时用 echo 即可. pintf 命令不能接受管道符参数,也不能之直接跟文件名, 但是可以跟系统命令执行的结果,如`df` 或者 $(cat /etc/passwd)
1.命令格式: printf '输出类型转义符' 输出内容
2. 常用输出格式:
%ns : 输出字符串; 输出n位的字符串
%ni: 输出整数: 输出n位的整数
%m.nf: 输出浮点数: m位整数 和 n位小数
3. 常用转义符
\t 水平tab 键
\v 垂直tab 键
\n 换行
\r 回车, Enter键
\f 清除屏幕
\b 输出退格键
\a 输出警告声音
4. 常用举例:
eg.1: printf '%s %s %s\n' 1 2 3 4 5 6 , 输出格式为3个字符串为一行,行尾添加换行符
eg.2: printf '%10s \t %10s \t %10s \t %10s \t %10s \t %10s \n' `df` , 格式化df 输出,间隔为tab键, df 默认输出间隔为空格,不能使用cut 提取
eg.3 :printf '%10s \t %10s \t %10s \t %10s \t %10s \t %10s \n' `df` | cut -f 1,5 , 格式化输出df , 并使用cut 提取第一和第五列,
5. 注意:
1. printf 命令默认输出结果没有换行符,需要手工添加\n
2. printf 命令后面不能接受管道符参数, 如: df | print '%s' 是错误的
3. print 命令后面也不能直接跟文件名, 如: print '%5s' /etc/passwd 是错误的
4. print 命令后可以跟系统命令执行的结果, 如: print '%s' $(cat /etc/password)'