温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何正确的使用正则表达式grep

发布时间:2021-04-02 17:24:09 来源:亿速云 阅读:149 作者:Leah 栏目:互联网科技

本篇文章为大家展示了如何正确的使用正则表达式grep,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

语法:grep 选项 ‘word' filename

-c:打印符合要求的行数
-i:不区分大小写
-n:在输出符合要求的行的同时显示行号
-v:打印不符合要求的行
-A:后跟一个数字n,表示打印符合要求的行以及下面n行
-B:后跟一个数字n,表示打印符合要求的行以及上面n行
-C:后跟一个数字n,表示打印符合要求的行以及上下各n行
-r:会把目录下所有的文件全部遍历
--color:把匹配到的关键词用红色标示

例子:

过滤出带有某个关键词的行并输出行号

grep -n ‘root' 1.txt

过滤出不带有某个关键词的行并输出行号

grep -nv ‘root' 1.txt

过滤出所有包含数字的行

grep ‘[0-9]‘ 1.txt

过滤出所有不包含数字的行

grep -v ‘[0-9]‘ 1.txt

去除所有以#开头的行

grep -v ‘^#‘ 1.txt

去除所有空行和以#开头的行

grep -v ‘^$‘ 1.txt|grep -v ‘^#‘

过滤出以英文字母开头的行

grep ‘^[a-zA-Z]‘ 1.txt

过滤出以非数字开头的行

grep -v ‘^[0-9]‘ 1.txt或者grep ‘^[^0-9]‘ 1.txt

过滤任意一个或多个字符

grep ‘r.o‘ 1.txt;grep ‘rt‘ 1.txt ;grep ‘r.t‘ 1.txt

过滤出包含root的行以及下面一行

grep -A1 ‘root‘ 1.txt

过滤出包含root的行以及上面一行

grep -B1 ‘root‘ 1.txt

指定过滤字符次数

grep ‘o{2}‘ 1.txt

把一个目录下,过滤所有.php文档中含有eval的行

grep -r --include=".php" ‘eval‘ /data/

过滤两个或多个关键词

grep -E ‘123|abc‘ filename #找出文件中包含123或者abc的行

或者egrep ‘123|abc‘ filename

或者awk ‘/123|abc/‘ filename

egrep=grep -E

匹配1个或者1个以上+前面的字符

egrep ‘o+‘ 1.txt

匹配0个或者1个?前面的字符

egrep ‘o?‘ 1.txt

匹配roo或者匹配body

egrep ‘roo|body‘ 1.txt

用括号表示一个整体,下面例子会匹配roo或者ato

egrep ‘r(oo)|(at)o‘ 1.txt

匹配1个或者多个oo

egrep ‘(oo)+‘ 1.txt

.:表示任意一个字符
:表示0个或多个前面的字符
+:表示1个或多个+前面的字符
?:表示0个或1个?前面的字符
.*:表示任意个任意字符(包含空行)
注意:+和?grep不支持,egrep才支持。

上述内容就是如何正确的使用正则表达式grep,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI