20 liunx shell编程 printf:标准格式输出命令;cat 和 printf的区别;printf 和print区别

在这里插入图片描述

格式化列印命令printf

语法: printf ‘列印格式’ 实际内容
参数:

参数作用
\a警告声音输出
\b倒退键(backspace)
\f清除萤幕 (form feed)
\n输出新的一行;换行
\r亦即 Enter 按键
\t水平的 [tab] 按键
\v垂直的 [tab] 按键
\xNNNN 为两位数的数字,可以转换数字成为字节。
关於 C 程序语言内,常见的变量格式
%ns那个 n 是数字, s 代表 string ,亦即多少个字节;
%ni那个 n 是数字, i 代表 integer ,亦即多少整数码数;
%N.nf那个 n 与 N 都是数字, f 代表 floating (浮点),如果有小数码数,假设我共要十个位数,但小数点有两位,即为 %10.2f 罗!

示例

# 错误示范 输出 123456
[userwin@MiWiFi-R3L-srv learn]$ printf %s 1 2 3 4 5 6
123456[userwin@MiWiFi-R3L-srv learn]$ 
# 错误示范 %s %s 1 2 3 4 5 6 作为整体 输出 %s%s123456
[userwin@MiWiFi-R3L-srv learn]$ printf %s %s %s 1 2 3 4 5 6
%s%s123456[userwin@MiWiFi-R3L-srv learn]$
# 错误示范  输出列不如预期
[userwin@MiWiFi-R3L-srv learn]$ printf '%s %s %s' 1 2 3 4 5 6
1 2 34 5 6[userwin@MiWiFi-R3L-srv learn]$
# 正确示范
[userwin@MiWiFi-R3L-srv learn]$ printf '%s %s %s\n' 1 2 3 4 5 6
1 2 3
4 5 6

在这里插入图片描述

cat 和 printf的区别

# cat 查看文本命令
[userwin@MiWiFi-R3L-srv learn]$ cat student1.txt 
No	Name	Mark	Percent 
01	tom	69	91 
02	jack	71	87 
03	alex	68	98 
# student1.txt 被当成字符串
[userwin@MiWiFi-R3L-srv learn]$ printf '%s' student1.txt 
student1.txt[userwin@MiWiFi-R3L-srv learn]$ 
# 不支持管道符
[userwin@MiWiFi-R3L-srv learn]$ cat student1.txt | printf '%s'
[userwin@MiWiFi-R3L-srv learn]$ 
# 可以先查看 student1.txt 在通过printf 输出; 但输入内容却失去了之前的格式
[userwin@MiWiFi-R3L-srv learn]$ printf '%s' $(cat student1.txt) 
NoNameMarkPercent01tom699102jack718703alex6898[userwin@MiWiFi-R3L-srv learn]$ 
[userwin@MiWiFi-R3L-srv learn]$ 

‘%s\t %s\t %s\t %s\t \n’
%s 代表一个字符串;显然上面是4个字符串
\t 代表制表符tab
\n 代表换行符

[userwin@MiWiFi-R3L-srv learn]$ printf '%s\t %s\t %s\t %s\t \n' $(cat student1.txt) 
No	 Name	 Mark	 Percent	 
01	 tom	 69	 91	 
02	 jack	 71	 87	 
03	 alex	 68	 98

printf 和print区别

printf

printf 是linux标准格式输出命令,
不能自动加入换行符;想要换行,需要自定义格式。

print

print:不是系统命令;但awk命令支持print
输出后自动加入换行符

书山有路勤为径,学海无涯苦作舟

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

EngineerForSoul

你的鼓励是我孜孜不倦的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值