目录
一,awk概述
1,awk工作原理
二,awk的格式
三,内置变量演示
2, awk常用内置变量
3,NF(多少列) 和[NR](所少行)的演示
四,面试题
五。BEGIN开始和END结尾
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:显示行号
案例4:打印第二行,不加print也一样,默认就是打印
案例5:打印第二行的第一列
案例6:打印最后一列
案例7:打印总行数
案例8:打印文件最后一行
案例9:加上文字描述行数和列数
案例1:查看本机的ip地址多少,截取出来
案例2:查看本机流量有多少字节
案例3:查看根分区的可用量