SHELL文本处理三剑客(sed、grep、awk)

一、grep文本过滤器

1. 基本介绍

Global search regular expression and print out theline
全面搜索研究正则表达式并显示出来 grep命令是一种强大的文本搜索工具根据用户指定的
“模式”对目标文本进行比配检查,打印匹配到的行,由正则表达式或者字符及基本文本字符所编写的过滤条件。

2. grep中字符的匹配位置设定
grep 匹配条件 处理文件
    ^关键字  #关键字开头的行
    关键字$ #关键字结尾的行
    \<关键字 #不再向前扩展
    关键字\> #不再向后扩展
    \<关键字\> #不再向前后扩展

例如:

[root@sunshine shell]# grep root passwd                    #匹配有root的行
[root@sunshine shell]# grep ^root passwd                   #匹配root开头的行
[root@sunshine shell]# grep root$ passwd                   #匹配root结尾的行          
[root@sunshine shell]# grep -i ^root passwd                #-i忽略大小写
[root@sunshine shell]# grep -i -E "^root|root$"  passwd   #-E识别|符号,"|"表示“或”
[root@sunshine shell]# grep -i -E -v "^root|root$"  passwd #-v反向过滤

这里写图片描述

2. grep中字符的匹配次数设定
* #字符出现0-任意次
\? #字符出现0-1次
+ #字符出现0-任意次
{n} #字符出现n次
{m,n} #字符出现m-n次
{
  0,n} #字符出现0-n次
{m,} #字符最少出现m次
(xy){n}xy #关键字出现n次
.* #关键字之间匹配任意字符要加-E 

例如:

[root@sunshine shell]# grep -E "r*t" file
[root@sunshine shell]# grep -E "r.*t" file       #匹配rt之间任意字符的行
[root@sunshine shell]# grep -E "r..." file       #匹配r后面有三个字符字符的行
[root@sunshine shell]# grep -E "r...\>" file     #匹配r后面有三个字符字符的行,不向后做扩展
[root@sunshine shell]# grep -E "\<r..." file     #匹配r后面有三个字符字符的行,不向前做扩展
[root@sunshine shell]# grep -E "\<r...\>" file   #匹配r后面有三个字符字符的行,不向前后做扩展
[root@sunshine shell]# grep -E "ro*t" file       #匹配rt之间o出现0-任意次的行
[root@sunshine shell]# grep -E "ro?t" file       #匹配rt之间o出现0-1次的行
[root@sunshine shell]# grep -E "r0{1,}t" file    #匹配rt之间o出现
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值