目录
AWK是一种处理文本的语言,是一个强大的文件分析工具。
它专门为文本处理设计的编程语言,也是行处理软件,通常用于扫描过滤统计词汇等工作,数据可以来自标准输入也可以是管道或者文件。
与sed比较
- 格式1:awk [选项] '模式或条件{编辑指令}' 文件1
- 🛺🚕🚕🛺🛺🛺🛺🛺🛺🛺🛺🛺🚙🚙🚙🚙🚙🚙
- 格式2:awk -f 脚本文件 文件名
1,awk包含几个特殊的内建变量
| 内置变量 | 功能 |
| NF | 当前处理的行的字段个数(就是:有多少列) |
| NR | 当前处理的行的行号(就是:有多少行 |
| FNR | 读取文件的记录数(行号),从1开始,新的文件重新从1开始计数 |
| $0 | 当前处理的行的整行内容(就是:表示一行的内容) |
| $n | 当前处理行的第n个字段(就是:第n列 |
| FILENAME | 被处理的文件名 |
| FS | 指定每行的字段分隔符,默认为空格或制表位(相当于选项 -F ) |
| OFS | 输出字段的分隔符,默认也是空格 |
| RS | 行分割符。awk从文件上读取资料时,将根据Rs的定义把资料切割成许多条记录,而awk一次仅读取一条记录,预设值是“\n“ |
| ORS | 输出分割符,默认也是换行符 |
案例1:结合print进行输出,默认分隔符


案例2:设定分割符号


用x作为分隔符

显示一个空格,空格需要用双引号引起来,如果不用引号默认以变量看待,如果是常量就需要双引号引起来。

逗号有空格效果

用制表符作为分隔符号

定义多个分隔符,只要看到其中一个都算作分隔符

| $1 | 代表第一列 |
| $2 | 代表第二列以此类推 |
| $0 | 代表整行 |
| NF | 一行的列数 |
| NR | 行数 |


- NR:表示该处理的行序号是多少
-
- NF:表示该处理的行,有多少列
案例1:打印每一行的列数

案例2:显示行号

案例3:显示行号,并显示每一行的内容
案例4:打印第二行,不加print也一样,默认就是打印

案例5:打印第二行的第一列

案例6:打印最后一列

案例7:打印总行数


案例8:打印文件最后一行

案例9:加上文字描述行数和列数


案例1:查看本机的ip地址多少,截取出来


案例2:查看本机流量有多少字节

案例3:查看根分区的可用量
