Shell printf格式化输出命令
printf 是 awk 的重要格式化输出命令,本节我们先介绍一下 printf 命令如何使用。 需要注意,在 awk 中可以识别 print 输出动作和 printf 输出动作(区别是:print 会在每个输出之后自动加入一个换行符;而 printf 是标准格式输出命令,并不会自动加入换行符,如果需要换行,则需要手工加入换行符),但是在 Bash 中只能识别标准格式化输出命令 printf。所以我们在本小节中介绍的是标准格式化输出命令 printf。 printf 命令格式如下: [root@localhost ~]# printf '输出类型输出格式' 输出内容 输出类型:
输出格式:
为了演示 printf 命令,我们需要修改一下刚刚 cut 命令使用的 student.txt 文件。文件内容如下:
[root@localhost ~]# vi student.txt
[root@localhost ~]# printf '%s' $(cat student.txt) 那么,为了用 printf 输出合理的格式,应该这样做:
[root@localhost ~]# printf '%st %st %st %st %st %stn' $(cat student.txt) 解释一下这个命令:因为我们的文档有6列,所以使用 6 个"%s"代表这 6 列字符串,每个字符串之间用"t"分隔;最后还要加入"n",使得每行输出都换行,否则这些数据还是会连成一行的。 如果不想把成绩当成字符串输出,而是按照整型和浮点型输出,则要这样做:
[root@localhost ~]# printf '%it %st %it %it %it %8.2ftn' printf 命令是 awk 中重要的输出动作,不过 awk 中也能识别 print 动作,区别刚刚已经介绍了,当然稍后我们还会举例来说明一下这两个动作的区别。注意:在 Bash 中只有 printf 命令。另外,printf 命令只能格式化输出具体数据,不能直接输出文件内容或使用管道符,所以 printf 命令的格式还是比较特殊的。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |