关于 print 和 printf:

 

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

 


关于 print

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

        print 在打印字段的时候,需要使用 “,”(逗号) 隔开字段 ,各个字段都会 自动转换成字符串格式,然后根据 自定义的内置变量“OFS”(默认值为 空格) 的值来连接输出的各个字段的字符串!
在这里插入图片描述
        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 的用法:
在这里插入图片描述
2、关于 %f/F 的用法:
在这里插入图片描述
3、关于 %g  %G 的用法:
在这里插入图片描述

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


关于转义字符:

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

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

 


 

关于 修饰符:

     
      话不多说,直接来举个栗子,当你使用 printf 搭配 \t 来制表时,你会发现:
在这里插入图片描述
      上面提到了两种修饰符: “数字” 和 “-”。

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

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

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

举例(上面举过的就不在提了):
在这里插入图片描述
我上面有口误,不能使用“%s“ 但是不代表只能使用 “%d“ ,抱拳了:
在这里插入图片描述


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

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


版权声明:本文为ljlfather原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。