awk编程语言/数据处理引擎
-创造者:Aho ,Weinberger,Kernighan
-基于模式匹配检查输入文本,逐行处理并输出
-通常用在Shell脚本,获取指定的数据
-单独用时,可对文本数据做统计
命令格式解析
主要用法
格式1:前置命令|awk 【选项】 '[条件] {指令}'
格式2:awk [选项] ' [条件]{指令}' 文件
[root@room9pc01 桌面]# awk '{print $1,$2}' zhu.txt 打印zhu.txt第一列,第二列的数据
[root@room9pc01 桌面]# df -h |awk '{print $4}' 打印命令df -h 输出的每行第4列
常用命令选项
-F :指定分隔符,可省(默认空格或Tab位)
[root@room9pc01 桌面]# awk -F: '{print $1}' /etc/passwd 以:分隔为列,并选择第一列
[root@room9pc01 桌面]# awk -F[:/] '{print $1}' /etc/passwd 以:或/分隔为列,并选择第一列
awk内置变量
有特殊含义,可直接使用
[root@room9pc01 桌面]# awk -F: '{print NR,NF}' /etc/passwd 对于/etc/passwd以:分隔为列,打印行数和列数
[root@room9pc01 桌面]# awk -F: '/root/{print $2}' /etc/passwd
awk 过滤的时机
在所有行前处理,BEDIN{}
-逐行读入文本执行相应的处理
-是最常见的编辑指令块
逐行处理,{}
-逐行读入文本执行相应的处理
-是最常见的编辑指令块
在所有行后处理,END{}
-处理完最后一行文本之后执行
-一般用来输出处理结果
[root@desktop0 ~]# a