关于 print 和 printf:

文章目录

    • 关于 print
    • 关于printf
      • 关于 格式化字符:
      • 关于转义字符:
      • 关于 修饰符:

 

这个是我自己写的 全部关于 awk学习的目录导航 ,感兴趣的可以看看。

 


关于 print

       
        print 我们都知道,它是 awk 中最常用的动作,根据 awk 的匹配规则,匹配到需要的数据,然后使用 print 打印出来!

        print 在打印字段的时候,需要使用 “,”(逗号) 隔开字段 ,各个字段都会 自动转换成字符串格式,然后根据 自定义的内置变量“OFS”(默认值为 空格) 的值来连接输出的各个字段的字符串!
关于 print 和 printf:_第1张图片
        print 要输出的数据被称之为 “记录”,在print 输出时,会在后面自动加上 输出记录分隔符“ORS” ,它的值默认为换行符 “\n”。
 


 

关于printf

       
        准确的说,printf 是根据我们自己设定的格式来输出文本。然鹅,说到输出文本,就会想到另一个常用输出命令:echo
在这里插入图片描述
        很清楚的看到,echo 自动给输出的文本进行换行,而 printf 却没有。如果想换行只能结合换行符 “\n”来换行。
在这里插入图片描述


关于 格式化字符:

 
提到了 printf 就要说说它的搭档们了 —— “格式化字符”。

格式替换符 作用
%s 字符串
%f   %F 浮点格式
%g   %G 浮点格式 或 科学计数格式(输出为数字自己本身)
%b 相对应的参数中包含转义字符时,使用此符号进行替换,对应的转义字符就会被转义
%c 显示对应参数的第一个字符
%d   %i 转换为 整数,但不是四舍五入的结果(23.999 会输出为 23)
%o 正整数 识 别为八进制数,然后再转换为十进制的方式输出
%u 十进制 … … … …
%x   %X 十六进制 … … … … …
%% 表示 % 本身

一些关于 “格式化字符” 的例子:
 

1、关于 %s 的用法:
关于 print 和 printf:_第2张图片
2、关于 %f/F 的用法:
在这里插入图片描述
3、关于 %g  %G 的用法:
关于 print 和 printf:_第3张图片

4、关于 %c 的用法:
在这里插入图片描述
5、关于%d / i 的用法:
关于 print 和 printf:_第4张图片
6、关于 进制方面的用法:
关于 print 和 printf:_第5张图片


关于转义字符:

 
      上面也说了,printf 并没有自动换行的功能,要想换行我们得搭配转义字符 “\n” 来换行。 这里来说一下,常用的转义字符:

符号 作用
\n 换行
\f 换页
\r 回车
\t 水平制表(跳到下一个 tab位置)
\v 垂直制表
\\ 代表 \ 自己本身
\’   \"   \?   依次代表 单引号、双引号、问号
\0 空字符

 


 

关于 修饰符:

     
      话不多说,直接来举个栗子,当你使用 printf 搭配 \t 来制表时,你会发现:
关于 print 和 printf:_第6张图片
      上面提到了两种修饰符: “数字” 和 “-”。

%10s   表示: 当前替换符对应的 输出宽度 为10。
 
%-10s  表示:“-” 这个符号表示输出的结果为 左对齐不加 “-” 默认为右对齐
 
那么,+号代表什么呢?

注意:修饰符 均放在 格式化字符 的前面!

修饰符 作用
宽度 宽度用数字表示(格式:%ns,n为正整数 )表示输出后的字符所占的宽度(上面图中有举例)
- 使用 “-” 为左对齐(我们都喜欢从左往右看啊),不使用 “-” 的时候,输出结果默认为右对齐
+ 对于数值。对于正数,表示为 正号,对于负数,没有效果
空格 针对于数值。对于正数,输出结果前加一个 “ ”(空格),对于负数,没有效果
0 只对 右对齐的输出结果有效,然后使用 0 来填充左边
单引号 ’ 只对数值有效,结果是 在数值的千分位处(也就是一串数字的每个第四位处)加一个逗号

举例(上面举过的就不在提了):
关于 print 和 printf:_第7张图片
我上面有口误,不能使用“%s“ 但是不代表只能使用 “%d“ ,抱拳了:
关于 print 和 printf:_第8张图片


 
上一篇文章:awk 基础篇(介绍、语法、参数、匹配规则 …)

下一篇文章:awk 中的格式化

你可能感兴趣的:(awk,awk,shell)