shell脚本--文本处理三剑客之awk 模式匹配的两种用法(正则和运算符)

第一种模式匹配:RegExp(正则表达式)

第二种模式匹配: 关系运算符匹配

 

用法格式对照表

语法格式                        含义
RegExp                       按照正则表达式匹配
关系运算                       案关系运算匹配

第一种:

示例:

pattern变量为root的字段 并进行整行输出

$ awk 'BEGIN{FS=":"}/root/{print $0}' passwd 
root:x:0:0:root:/root:/bin/bash

 输出以chencl开头的行

$ awk 'BEGIN{FS=":"}/^chencl/{print $0}' passwd 
chencl:x:1000:1000:chencl,,,:/home/chencl:/bin/bash

第二种

关系运算符匹配
<            小于
>            大于
<=           小于等于
>=           大于等于
==           等于
!=           不等于
~            匹配正则表达式
!~           不匹配正则表达式
||           或
&&           与
!            非

示例:

UID小于50的整行输出

$ awk 'BEGIN{FS=":"}$3<50{print $0}' passwd 
root:x:0:0:root:/root:/bin/bash

 UID等于1的整行输出

$ awk 'BEGIN{FS=":"}$3==1{print $0}' passwd 
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin

 字符串比较

$ awk 'BEGIN{FS=":"}$1=="chencl"{print $0}' passwd 
chencl:x:1000:1000:chencl,,,:/home/chencl:/bin/bash

不等于 

$ awk 'BEGIN{FS=":"}$7!="/bin/bash"{print $0}' passwd 
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin

~后面跟正则表达式 格式  / 正则表达式/ 

$ awk 'BEGIN{FS=":"} $1~/root/{print $0}' passwd 
root:x:0:0:root:/root:/bin/bash

||运算符 

$ awk 'BEGIN{FS=":"}$1=="root"||$1=="chencl"{print $0}' passwd 
root:x:0:0:root:/root:/bin/bash
chencl:x:1000:1000:chencl,,,:/home/chencl:/bin/bash

 &&运算符

$ awk 'BEGIN{FS=":"}$3==1000 && $1=="chencl"{print $0}' passwd 
chencl:x:1000:1000:chencl,,,:/home/chencl:/bin/bash

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值