grep命令

grep过滤

文本过滤器(在大段指定的文件中,按一定的模式 patten)进行过滤)grep 有三种形式:grep egrep fgrep(grep 家族)
其实 grep 是一段话的缩写:Global search regular expression and print
out the line(全面搜索研究正则表达式并显示出来)
作用:grep 命令是一种强大的文本搜索工具,根据用户指定的“模
式”对目标文本进行匹配检查,打印匹配到的行。
模式(patten):由正则表达式或者字符及基本文本字符所编写的过
滤条件
那什么是正则表达式(REGEXP)呢,下面我们做一个简单的介绍:
正则表达式:由一类特殊字符及文本字符所编写的模式,其中有些字
符不表示字符的字面意思,而表示控制或通配的功能(是不是比较难
理解)
分文两类:1.基本正则表达式(BRE):grep2.扩展正则表达式 (ERE): egrep
grep –E
gawk 能够识别 ERE 模式,但 sed 编辑器不能
记住:sed 编辑器和 gawk 的正则表达式引擎之间是有区别的,gawk
可以使用大多数扩展正则表达式模式符号,并且提供一些额外的 sed
编辑器没有的额外过滤功能,但正因为如此,它通常在处理数据流时
更慢
grep 的格式:
指定选项 而后指定模式 指定选项即可 (表示从这个文件中以这个
模式匹配 符合这个模式的行 都予以显示)这时 grep 最简单的用法
(模式当中 只要不涉及变量的话 单双引号都可以 双引号:弱引用
单引号:强引用)
复制/etc/passwd到/mnt,为实验效果稍作编辑
这里写图片描述

grep 匹配条件 处理文件
grep  root passwd     过滤passwd含root的行
grep -i root passwd   过滤passwd含root忽略大小写区别
grep ^root passwd        过滤paasswd以root开头的行
grep  root$ passwd       过滤passwd以root结尾的行
grep -E "root|lee" passwd 过滤passwd含root或者lee的行 -E扩展匹配符号
==egrep "root|lee" passwd
grep -r [^]root[$] /mnt  过滤/mnt下所有文件含root行的内容 
grep -rn root /mnt 过滤/mnt下所有文件含root行的内容并显示行号
grep -v root passwd  过滤passwd中除了root行的内容 -v反选
grep -o root passwd 只过滤root
##grep字符的匹配次数设定

grep -E x*y       file 表示字符x出现的0-任意次数并且y要求至少一个的行
grep -E 'x?y'     file 表示字符x出现0-1次并且y要求至少一个的行
grep -E 'x+y'     file 表示字符x出现1到任意次并且y要求至少一个的行
grep -E 'x{n}y'   file 表示字符x出现n次并且y要求至少一个的行
grep -E 'x{m,n}y' file 表示x出现最少m次,最多出现n次并且y要求至少一个的行
grep -E 'x{0,n}y' file 表示字符x出现0-n次并且y要求至少一个的行
grep -E 'x{m,}y'  file 表示x最少出现m次,最多不限并且y要求至少一个的行
grep -E 'x{,n}'   file 表示x最多出现n次、最少不限
grep -E '(xy){n}' file 关键字xy出现n次
grep -E 'x.*y'    file 关键词xy之间出现任意字符


精确匹配
grep -E '^westos$'   file 表示file中westos这行
grep -E '\<westos\>' file 表示file文件中以单词westos开头的行

这里写图片描述
实验:过滤含root的行
这里写图片描述
过滤含root的行忽略大小写
这里写图片描述
过滤以root开头的行
这里写图片描述
过滤以root结尾的行
这里写图片描述
过滤不含root的行
这里写图片描述
过滤含root或者hello的行
这里写图片描述
过滤/mnt目录下含root的行
这里写图片描述
过滤/mnt下含root开头并且以root结尾的行,输出显示行号
这里写图片描述
只过滤root的行[显示行号]
这里写图片描述

字符的匹配次数设定

这里写图片描述
对于file
这里写图片描述
字符x出现0-任意个的行
字符x出现的0-任意次数并且y要求至少一个的行
这里写图片描述
匹配x出现0-1次的行
这里写图片描述
匹配x出现0-1次,y至少出现一次的行
这里写图片描述
匹配x出现1到任意次,y至少一次的行
这里写图片描述
匹配x出现4次并且至少有一个y的行
这里写图片描述
匹配x至少出现2次,最多出现4次并且至少有一个y的行
这里写图片描述
匹配x出现0-3次的行
这里写图片描述
匹配x出现最少3次的行
这里写图片描述
匹配x出现最多3次的行(默认情况下正则表达式处于贪婪匹配所以x多于3的行也被过滤出来了)
这里写图片描述
匹配xy出现两次的行(xy)在一起一定要有括号,否则匹配y出现两次x出现一次的行
这里写图片描述
匹配xy之间任意字符个数的行
这里写图片描述

精确匹配

对于file1
这里写图片描述
匹配file1中westos这一行[显示行号] -E或不-E都可以
这里写图片描述
匹配file1中以westos单词开头和结尾的行
这里写图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值