awk 格式

awk 工具概述
awk 编程语言、数据处理引擎
创造者: aho,weinberger , kernighan
基于模式匹配检查输入文本,逐行处理并输出
通常用在shell脚本中,获取指定的数据
单独用时,可以对文本数据做统计

命令格式解析:
格式1: 前置命令 | awk [选项] ‘[条件]{指令}’
格式2: awk [选项] ‘[条件]{指令}’ 文件…
常用指令一般都是print 多条语句可以用分隔符分隔
案例如下;

awk -F: '{print $1,$2}'  /etc/passwd
awk '/Failed/{print $11}'  /var/log/secure

awk 内置变量:
Fs: 保存或设置字段分隔符,列如Fs=":",与-F功能一样
$n: 指定分隔的n字段,如$1 , $3 分别表示第一列和第三列
$0: 当前读入的整行文本类容
NF: 记录当前处理行的字段个数(列数)
NR:记录当前已读入行的数量(行号)

案例如下:

awk -F: '{print NR,NF}' /etc/passwd
awk -F: '{print $NF}' /etc/passwd  #输出每一行的最后一个字段
awk -F: '{print "用户名:",$1,"解释器:",$7}'  /etc/passwd

awk 过滤的时机:
在所有行前处理,BEGIN{}
读入第一行文本之前执行
一般用来初始化操作
逐行处理,{}
逐行读入文本执行相应的处理
是最为常见的编辑指令块
在所有行后处理,END{}
处理完后第一行文本执行
一般用来输出处理结果
以上可以单独使用也可以一起使用。
案例如下:

#预处理不需要数据文件
awk 'BEGIN{a=34;print a+12}'
#统计使用bash的用户个数
awk 'BEGIN{x=0}/\<bash$/{x++}END{print x}' /etc/passwd
#与处理时行数为零
#全部处理完后,行号为已读入文本行数
awk 'BEGIN{print NR}END{print NR}' /etc/passwd 

处理条件概述
格式回顾:
awk [选项] ‘[条件]{编辑指令}’ 文件…
条件的表现形式
正则表达式
数值、字符串比较
逻辑比较
运用符
正则表达式:
/正则表达式/
~匹配,!~ 不匹配

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值