Grep家族和正则表达式详解

前端之家收集整理的这篇文章主要介绍了Grep家族和正则表达式详解前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_403_0@1.grep家族的概念

@H_403_0@

@H_403_0@grep : 支持使用基本扩展表达式

@H_403_0@egrep:支持使用扩展正则表达式

@H_403_0@fgrep:不支持使用正则表达式

@H_403_0@作用:强大的文本搜索工具,根据用户指定的“pattern(过滤条件)”对目标文本逐行进行匹配检查,打印出符合条件的行

@H_403_0@pattern:由正则表达式的元字符及文本字符所编写出的过滤条件

@H_403_0@

@H_403_0@2.grep命令详解

@H_403_0@

@H_403_0@用法grep [OPTIONS] PATTERN [FILE]...

常用选项:
--color=auto:对匹配到的文本着色后高亮显示
-i:不区分字符大小写
-o:仅显示匹配到的文本自身
-v,--invert-match:反向匹配
-E:支持扩展的正则表达式
-q,--quiet,--silient:静默模式,不输出任何信息
-F:支持使用固定字符串,不支持正则表达式,相当于fgrep
-G,--basic-regexp:支持使用基本正则表达式
-p,--perl-regexp:支持使用pcre正则表达式
-ePATTERN,--regexp=PATTERN:多模式机制
-fFILE,--file=FILE:FILE为每行包含一个pattern的文本文件,及grepscript
-ANUM,--after-context=NUM:显示匹配到的后面几行
-BNUM,--before-context=NUM:显示匹配到的前面几行
-CNUM,-NUM,--context=NUM:显示匹配到的前后各几行
@H_403_0@

@H_403_0@使用示例:

@H_403_0@

wKioL1beJpGhVp6FAAAn6dRIWf8841.png

@H_403_0@

wKiom1beJomwD9J-AAAkdLmyeD8773.png

@H_403_0@由于grepegrep会用到正则表达式,所以在后面会结合正则表达式再一起演示。

@H_403_0@

@H_403_0@3.正则表达式作用及元字符

@H_403_0@

@H_403_0@正则表达式由一类特殊字符及文本字符所编写的模式,其中有些字符不表示其字面意义,而是用于表示控制或通配功能

@H_403_0@正则表达式引擎:利用正则表达式模式分析给定文本的程序。

@H_403_0@而正则表达式又分为两类:

@H_403_0@(1)基本正则表达式

@H_403_0@(2)扩展正则表达式

@H_403_0@

@H_403_0@

wKioL1beMYbzBlVhAAUBUYyFMwk678.jpg

@H_403_0@

@H_403_0@注意,找出上下两张图片哪里不同?

@H_403_0@基本正则表达式元字符和扩展正则表达式元字符是有所不同的!

@H_403_0@

wKioL1beM0SAorC2AAVYxf0RAcg823.jpg

@H_403_0@

@H_403_0@4.grep命令结合正则表达式的应用

@H_403_0@

@H_403_0@(1)字符匹配

@H_403_0@找出/etc/passwd文件中带有nologin的行

grep"[nologin]"/etc/passwd
@H_403_0@

@H_403_0@(2)次数匹配

@H_403_0@找出 /etc/passwd文件中的三位或四位数

grep-o"\<[0-9]\{3,4\}\>"/etc/passwd
egrep-o"\<[0-9]{3,4}\>"/etc/passwd
@H_403_0@

@H_403_0@(3)位置锚定

@H_403_0@显示/etc/passwd文件中不以bash结尾的行

grep-v"bash$"/etc/passwd
@H_403_0@

@H_403_0@(4)分组应用

@H_403_0@在/etc/passwd找出其用户名与shell名相同的用户

egrep"^([a-z0-9]+)\>.*\1$"/etc/passwd
@H_403_0@(5)综合应用

@H_403_0@找出ifconfig命令结果中的IP地址

ifconfig|egrep"\<inet[[:space:]]+.*[0-9]\>"
@H_403_0@找出/etc/grub2.cfg文件中,以至少一个空白字符开头,后面又跟了非空白字符的行

egrep"^[[:space:]]+[^[:space:]]*"/etc/grub2.cfg
@H_403_0@找出/proc/meminfo文件中,所有以大写或小写c开头的行;至少用三种方式实现

egrep"^(c|C)"/tmp/meminfo
grep"^[Cc]"/tmp/meminfo
grep-i"^c"/tmp/meminfo
原文链接:https://www.f2er.com/regex/359506.html

猜你在找的正则表达式相关文章