shell编程-字符截取命令-printf命令
前言
- printf命令并不是字符提取命令,最常用在awk列提取命令的标准输出格式。与echo类似,都是输出。放在awk之前来学习,更容易理解。
- 学习这条命令的原因: awk命令中最基本的命令输出方法。在这个awk命令当中不能直接调用系统命令cat、echo,只能使用printf。awk识别的是printf。
1. printf命令
命令: printf '输出类型格式输出' 输出内容
小提示: 也可以是双引号,只要加了单引号或双引号,才会知道,里面的%s 不是要输出的字符串。
输出类型:
l输出类型 | 含义 |
---|---|
%ns | 输出字符串。n是数字代输出几个字符 |
%ni | 输出整数。n是数字指代输出几个数字 |
%m.nf | 输出浮点数。m和n是数字,指代输出的整数位数和小数位数。如%8.2f代表共输出8位数,其中两位是小鼠,6位是整数 |
输出格式:
输出格式 | 含义 |
---|---|
\a | 输出警告声音 |
\b | 输出退格键,也就是Backspace |
\f | 清除屏幕 |
\n | 换行 |
\r | 回车,也就是enter键 |
\t | 水平输出退格键,也就是tab键 |
\v | 垂直输出退格键,也就是tab键 |
开始实验:
-
命令:
printf %s 1 2 3 4 5 6
命令:printf %s%s%s 1 2 3 4 5 6
命令:printf '%s%s%s' 1 2 3 4 5 6
命令:printf '%s%s%s\n' 1 2 3 4 5 6
-
命令:
printf '%s' $(cat student)
作用:不调整输出格式 -
命令:
printf('%s\t %s\t %s\t \n') $(cat student)
作用:调整格式输出 -
(1) 写三个%s 说明每三个为一组作为输出。
小提示: 输出的内容太是需要进行格式化调整的,可以输出指定的字串也可以输出一个文件内容。输入cat时自动调整文件内容的格式,是因为在写这个命令的同时,就已经把格式调整加入到里面了。printf不能直接加文件名,也不能用管道符来接受第一条命令的执行结果。
2.printf和print的区别
-
在awk命令的输出中支持print和printf命令
print: print会在每个输出之后自动加入一个换行符 (Linux默认没有print命令)
printf: printf是标准输出格式输出命令,并不会在自动加入换行符,如果需要换行,需要手工加入换行符。 -
说明: 再次强调,Linux系统是没有print命令的。 print、printf这两个命令是在awk命令之中使用的,print只能在awk里面用,不能再系统当中用的,系统当中没有这个print这个命令的。