shell的格式化输出命令printf

printf 命令用于格式化输出, 是echo命令的增强版。它是C语言printf()库函数的一个有限的变形,并且在语法上有些不同。

注意:printf 由 POSIX 标准所定义,移植性要比 echo 好。

如同 echo 命令,printf 命令也可以输出简单的字符串:

  1. $printf "Hello, Shell\n"
  2. Hello, Shell
  3. $

printf 不像 echo 那样会自动换行,必须显式添加换行符(\n)。

printf 命令的语法:

printf  format-string  [arguments...]

format-string 为格式控制字符串,arguments 为参数列表。

printf()在C语言入门教程中已经讲到,功能和用法与 printf 命令类似,请查看:C语言格式输出函数printf()详解

这里仅说明与C语言printf()函数的不同:

  • printf 命令不用加括号
  • format-string 可以没有引号,但最好加上,单引号双引号均可。
  • 参数多于格式控制符(%)时,format-string 可以重用,可以将所有参数都转换。
  • arguments 使用空格分隔,不用逗号。

请看下面的例子:

纯文本复制
  1. # format-string为双引号
  2. $ printf "%d %s\n" 1 "abc"
  3. 1 abc
  4. # 单引号与双引号效果一样
  5. $ printf ‘%d %s\n‘ 1 "abc"
  6. 1 abc
  7. # 没有引号也可以输出
  8. $ printf %s abcdef
  9. abcdef
  10. # 格式只指定了一个参数,但多出的参数仍然会按照该格式输出,format-string 被重用
  11. $ printf %s abc def
  12. abcdef
  13. $ printf "%s\n" abc def
  14. abc
  15. def
  16. $ printf "%s %s %s\n" a b c d e f g h i j
  17. a b c
  18. d e f
  19. g h i
  20. j
  21. # 如果没有 arguments,那么 %s 用NULL代替,%d 用 0 代替
  22. $ printf "%s and %d \n"
  23. and 0
  24. # 如果以 %d 的格式来显示字符串,那么会有警告,提示无效的数字,此时默认置为 0
  25. $ printf "The first program always prints‘%s,%d\n‘" Hello Shell
  26. -bash: printf: Shell: invalid number
  27. The first program always prints ‘Hello,0‘
  28. $
时间: 2024-08-25 00:24:38

shell的格式化输出命令printf的相关文章

格式化输出命令printf

格式化输出:printf 在linux的命令行下,如果我们要对数据进行格式化输出的话,要怎样实现呢?  使用vim或nano这些文本编辑器嘛?不,我们可以使用printf这个格式化输出命令. printf语法 printf   打印格式   实际内容         格式符: %c: 显示字符的ASCII码: %d, %i: 显示十进制整数: %e, %E: 科学计数法数值显示: %f:显示为浮点数: %g, %G:以科学计数法或浮点形式显示数值: %s:显示字符串: %u:无符号整数: %%:

格式化输出和printf命令

GNU版本的printf命令用来格式化输出,效果类似与C语言的printf函数.2.x以上版本的Bash内建的printf命令和e/usr/bin下的printf命令使用方法一样. 例子:$printf "The number is %.2f\n" 100The number is 100.00 $printf "%-20s%-15s%10.2f\n" "Jody" "Savage" 28 //%-20s表示左对齐Jody S

shell date格式化输出

1-  echo `date "+%Y-%m-%d %H:%M:%S"` 2014-11-13 15:06:26 2-  echo `date "+%y-%m-%d %H:%M:%S"` 14-11-13 15:06:51 注意: "+%y-%m-%d %H:%M:%S" 大小写 给定的格式FORMAT 控制着输出,解释序列如下: %%    一个文字的 %  %a    当前locale 的星期名缩写(例如: 日,代表星期日)  %A    当

Linux Shell编程 - 字符截取命令

01.字段提取命令 cut  =>   cut [选项] 文件名 -f 列号: 提取第几列 -d 分隔符:按照指定分割符分割列 例如:cut  -f  2,4(列号:,逗号可以多行提取)  student.txt cut  -d “:” -f 1,3 /etc/passwd 02.格式化输出命令 printf 命令  => printf  ‘输出类型输出格式’  输出内容 输出类型: %ns:输出字符串.n 是数字指代输出几个字符 %ni:输出整数.n 是数字指代输出几个数字 %m.nf:输出

【Shell脚本学习15】shell printf命令:格式化输出语句

printf 命令用于格式化输出, 是echo命令的增强版.它是C语言printf()库函数的一个有限的变形,并且在语法上有些不同. 注意:printf 由 POSIX 标准所定义,移植性要比 echo 好. 如同 echo 命令,printf 命令也可以输出简单的字符串: $printf "Hello, Shell\n" Hello, Shell $ printf 不像 echo 那样会自动换行,必须显式添加换行符(\n). printf 命令的语法: printf format-s

shell printf命令:格式化输出语句

printf 命令用于格式化输出, 是echo命令的增强版.它是C语言printf()库函数的一个有限的变形,并且在语法上有些不同. 注意:printf 由 POSIX 标准所定义,移植性要比 echo 好. 如同 echo 命令,printf 命令也可以输出简单的字符串: $printf "Hello, Shell\n" Hello, Shell $ printf 不像 echo 那样会自动换行,必须显式添加换行符(\n). printf 命令的语法: printf format-s

shell printf格式化输出语句

printf 命令用于格式化输出, 是echo命令的增强版.它是C语言printf()库函数的一个有限的变形,并且在语法上有些不同. 注意:printf 由 POSIX 标准所定义,移植性要比 echo 好. 如同 echo 命令,printf 命令也可以输出简单的字符串: $printf "Hello, Shell\n" Hello, Shell $ printf 不像 echo 那样会自动换行,必须显式添加换行符(\n). printf 命令的语法: printf format-s

使用shell+awk完成Hive查询结果格式化输出

好久不写,一方面是工作原因,有些东西没发直接发,另外的也是习惯给丢了,内因所致.今天是个好日子,走起! btw,实际上这种格式化输出应该不只限于某一种需求,差不多是通用的. 需求: --基本的:当前Hive查询结果存在数据与表头无法对其的情况,不便于监控人员直接查看,或者导出到excel中,需要提供一个脚本,将查询结果处理下,便于后续的查看或者操作. --额外的:A.每次查询出来的结果字段数.字段长度不固定:B.每个数据文件中可能包含不只一套查询结果,即存在多个schema. 想法: 对于基本需

Linux Bash Shell字符串抽取、按列合并和格式化输出

需求来源:默认的ip link show命令输出会输出系统中已经存在的网卡(包括虚拟网卡)的名称.MAC地址.端口状态等信息,但也夹杂着一些无用的信息,此次的字符串操作就是将这些信息中的网卡名称.MAC地址.端口状态取出来. 涉及到的知识包括:常用的字符串的处理工具awk.sed.cut等的用法,paste按列合并,printf格式化输出等. 例如原输出信息为: 现在要把上图中红色框内的信息全部提取出来,但难点在于ip link show命令的默认输出会将MAC地址打印在下一行,导致普通的awk