文本处理工具printf命令

  

使用过c语言的程序员,应该很熟悉printf命令,printf命令模仿了c语言的printf()函数

  

printf命令的作用是按照我们指定的格式输出文本

  

<强>输出文本命令回声和printf有什么区别
看到回波命令是正常输出一个文本进行换行,而printf是输出文本进行不换行

  
 <代码> [root@zhaocheng ~] #北京回声
  北京
  北京# printf (root@zhaocheng ~)
  北京(root@zhaocheng ~) #  
  

<强>
如果使用printf进行换行输出可以加\ n

  
 <代码> [root@zhaocheng ~] # printf“北京\ n”
  北京 
  

<>强而printf这么麻烦,但为什么还有人一直在用,它真正的作用是能够格式化输出文本的能力
而打印的时候,echo - e可以使用\ n换行进行输出,而printf也可以加\ n换行输出,或者也可以加“% s \ n"进行输出
<强>
而printf的能力在处理多行进行换行的文本时明显是比较快,使用\ n的时候如果处理多1000个需要换行的,显示echo - e \ n力不从心,也就是% s这个是代替传入的参数,% s代替了命令中123456年,当我们使用% s \ n就会通过printf输出格式化成“abc \ n"以此类推这样都进行将后面的进行格式化输出

  
 <代码> [root@zhaocheng ~] # echo - e“123 \ n456 \ n789 \ naaa \ nbbb \ nccc”
  123
  456
  789
  aaa
  bbb
  ccc
  (root@zhaocheng ~) # printf“123 \ n456 \ n789 \ naaa \ nbbb \ nccc”
  123
  456
  789
  aaa
  bbb
  (root@zhaocheng ~) # printf“% s \ n”123 456 789 aaa bbb ccc
  123
  456
  789
  aaa
  bbb
  ccc  
  

printf还支持多种替换符格式化类型
% s字符串
% f浮点格式
% b相对应的参数中包含转义字符时,可以使用此替换符进行替换,对于的转义字符会被转义
% c ASCII字符,显示相对应参数的第一个字符
% d %我十进制整数
% o不带正负号的八进制值
% u不带正负号的十进制值
% x不带正负号的十六进制值,使用至f表示10至15
% x不带正负号的十六进制值,使用至f表示10至15
% %表示“%”本身

  

转义字符
printf常用的转义符
\警告字符,通常为ASCLL的贝尔字符
\ b后退
\ c抑制(不显示)输出结果中任何结尾的转义字符,(只在% b格式指示符控制下的参数字符串中有效,而且任何留在参数里的字符,任何接下来的参数以及任何留在格式字符串中的字符,都被忽略
\ f换页
\ n换行
\ r回车
\ t水平制表符
\ v垂直制表符
\一个字面上的反斜杠字符,仅在格式字符串中有效
\ 0 ddd表示1 - 3位的八进制值字符

  

<强>比如为每个传入的参数添加一对括号,并且括号内测需要有空格

  
 <代码> [root@zhaocheng ~] # printf“(% s)”12 45 67 78 89;回声”“
  [12][45][67][78][89]
  root@zhaocheng ~ # printf”(% s)”12 45 67 78 89;回声”“
  [12][45][67][78][89] 
  

<强>使用\ t参数”制表符”进行隔开

  
 <代码> [root@zhaocheng ~] # printf“% s \ t”12 45 67 78 89;回声”“
  12 45 67 78 89  
  

<强>使用\ n是换行输出,% f \ n浮点型参数输出

  
 <代码> [root@zhaocheng ~] # printf“% s \ n”123 45 5676 76
  123
  45
  5676
  76
  (root@zhaocheng ~) # printf“% f \ n”123 45 5676 76
  123.000000
  45.000000
  5676.000000
  76.000000  
  

<强>
格式替换符的使用

  
 <代码> [root@zhaocheng ~] # printf“% s \ n”12 45 67 78 89 99
  12
  45
  67
  78
  89
  99
  (root@zhaocheng ~) # printf“% s % s \ n”12 45 67 78 89 99
  12个45
  67 78
  89 99
  (root@zhaocheng ~) # printf“% s % s % s \ n”12 45 67 78 89 99
  12 45 67
  78 89 99
  root@zhaocheng ~ # printf”% s % s % s % s \ n”12 45 67 78 89 99
  12 45 67 78
  89 99
  root@zhaocheng ~ # printf”% s % s % s % s % s \ n”12 45 67 78 89 99
  12 45 67 78 89
  99
  root@zhaocheng ~ # printf”% s % s % s % s % s % s \ n”12 45 67 78 89 99
  12 45 67 78 89 99
  (root@zhaocheng ~) # printf“十二45 67 78 89 99 \ n”
  12 45 67 78 89 99  
  

<强>
使用printf同样也可以进行颜色输出
文本处理工具printf命令

  

文本处理工具printf命令

文本处理工具printf命令