一、printf命令
### --- printf格式化输出
[root@localhost ~]# 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 键
二、printf命令实验文件创建
### --- 为了演示 printf 命令,
### --- 我们需要修改下刚刚 cut 命令使用的 student.txt 文件,文件内容如下:
[root@localhost ~]# vim student.txt
ID Name PHP Linux MySQL Average
1 Liming 82 95 86 87.66
2 Sc 74 96 87 85.66
3 Tg 99 83 93 91.66
### --- 我们使用 printf 命令输出下这个文件的内容:
~~~ 注:晕菜,全变乱了一锅粥。这就是 printf 命令,
~~~ 如果不指定输出格式,则会把所有输出内容连在
~~~ 注:一起输出。
~~~ 其实文本的输出本身就是这样的,cat 等文本输出命令之所以可以按照格式漂亮的输出,
~~~ 注:那是因为 cat 命令已经设定了输出格式。
[root@localhost ~]# printf '%s' $(cat student.txt)
IDNamePHPLinuxMySQLAverage1Liming82958687.662Sc74968785.663Tg99839391.66[root@localhost ~]#
### --- 那么为了用 printf 输出合理的格式,应该这样做:
~~~ 注意在 printf 命令的单引号中,只能识别格式输出符号,而手工输入的空格是无效的
[root@localhost ~]# printf '%s\t %s\t %s\t %s\t %s\t %s\t \n' $(cat student.txt)
ID Name PHP Linux MySQL Average
1 Liming 82 95 86 87.66
2 Sc 74 96 87 85.66
3 Tg 99 83 93 91.66
### --- 如果不想把成绩当成字符串输出,而是按照整型和浮点型输出,则要这样:
[root@localhost ~]# printf '%i\t %s\t %i\t %i\t %i\t %8.2f\t \n'
0 0 0 0 0.00