Shell编程学习笔记(四)-awk

一.awk语法格式

awk是一个文本处理工具,通常用于处理数据并生成结果报告

工作模式:begin-->逐行(或者按某种匹配模式)处理文本-->end

语法格式:

  • awk 'BEGIN{}pattern{commands}END{}' file_name
  • standard output | awk 'BEGIN{}pattern{commands}END{}'

BEGIN{}:正式处理数据之前执行的程序

pattern:匹配模式

{commands}:处理命令,可能多行

END{}:处理完所有匹配数据后执行的程序

二.awk的内置变量

$0-整行内容

$1-n 按某种分隔符分割后的第i个字段

NF 按某种分隔符分割的字段个数

NR 当前行的行号,从1开始计数

FNR 多文件处理时,每个文件行号单独计数,都是从0开始

FS 输入字段分隔符

RS 输入行分隔符,默认回车换行

OFS 输出字段分隔符,默认为空格

ORS 输出行分隔符,默认回车换行

FILENAME 当前输入的文件名字

ARGC 命令行参数个数

ARGV 命令行参数数组

三.awk的模式匹配

1.awk只会对符合某种模式的行进行处理

  • RegExp:按正则表达式匹配
  • 关系运算:按关系运算匹配

2.RegExp

匹配文件file中含有root字符串的所有行

awk 'BEGIN{FS=":"}/root/{print $0}' file

匹配文件file中以yarn开头的所有行

awk 'BEGIN{FS=':'}/^yarn/{print $0} file'

3.关系运算符匹配

<
>
<=
>=
==
!=
~ 匹配正则表达式
!~ 不匹配正则表达式

|| 或
&& 与
! 非

以:为分隔符,匹配文件file中第3个字段小于50的所有行信息

awk 'BEGIN{FS=":"}$3>50{print $0}' file

以:为分隔符,匹配文件file中第7个字段为target的所有行信息

awk 'BEGIN{FS=":"}$7=="target"{print $0}' file

以:为分隔符,匹配文件file中第1个字段包含hdfs或yarn的所有行信息

awk 'BEGIN{FS=":"}$1=="hdfs" || $1=="yarn"{print $0}' file

 

三.awk的模式匹配

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值