这个是我自己写的 全部关于 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“ ,抱拳了: