加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

grep的基本正则表达式及扩展表达式

发布时间:2020-12-14 01:31:14 所属栏目:百科 来源:网络整理
导读:grep 全名为 全面搜索正则表达式并把行打印出来(global search regular expression) grep搜索以 FILE 命名的文件输入 (或者是标准输入,如果没有指定文件名,或者给出的文件名是 - 的话),寻找含有与给定的模式 PATTERN(正则表达式) 相匹配的内容的行。

grep 全名为 全面搜索正则表达式并把行打印出来(global search regular expression)

grep搜索以 FILE 命名的文件输入 (或者是标准输入,如果没有指定文件名,或者给出的文件名是 - 的话),寻找含有与给定的模式 PATTERN(正则表达式) 相匹配的内容的行。默认情况下, grep 将把含有匹配内容的行打印出来。

另外,也可以使用两个变种程序 egrep 和 fgrep 。 Egrep 与 grep -E 相同。 Fgrep 与 grep -F 相同


grep的用法: 命令参数详解参考

grep [OPTIONS] PATTERN [FILE...]

grep [OPTIONS] [-e PATTERN | -f FILE] [FILE...]

grep与egrep的常用选项(OPTIONS):

演示文本

aaat
bbb
ttt
BBB

-i:忽略大小写

image

-o:显示匹配到的内容

image

-v:反向选取

image

-A #:匹配到的行的下#行

image

-B #:匹配到的行的上#行

image

-C #:匹配到行的上下各#行

image

--color=auto:匹配的显示颜色

image

-n:显示行号

image


grep与egrep的模式(PATTERN):

image

字符匹配

演示文本

gd

god

good

goood

gooood

grep演示

. :可以匹任意单个单词

wKiom1RnAPDQ5Q5lAAAxtNygo9A989.jpg

集合相关

示文本

abc123 %^#ABC

grep演示

匹配到集合中的相关内容

wKioL1Rn9gTB8MI9AAE_eth5Fdc290.jpg

wKiom1Rn9ZLiQjUvAAArHPXFKvg441.jpg

egrep演示

wKiom1Rn9eCyp3QqAAAzall47Pk914.jpg

次数匹配

演示文本

gd

god

good

goood

gooood

?:匹配前面的字符0次或1次

wKioL1RnAWTgjfCoAAApaEt2rZo892.jpg

{m}: 匹配其前面的字符m次;

wKiom1RnAPST4YkXAAApzfU1Ydc567.jpg

{m,n}:匹配其前面的字符至少m次,至多n次;

wKiom1RnAPWhLM9oAAAw44ddd5E397.jpg

wKioL1RnAWaBKtYVAAA0RXKrxtY064.jpg

+:匹配前面的字符至少1次 与{1,}效果一样

wKiom1RnAPXzfkUmAAAxgOsBbt8765.jpg

.*:匹配任意长度的任意字符,连空格行也匹配出来了

wKioL1RnAWfDmSHWAAA3CuaTma4731.jpg

egrep演示

wKioL1Rn9TWTOr8aAAERRaZauSQ111.jpg

位置锚定

abc:1abc

1abc:abc1

^: 行首锚定

wKioL1Rn97iQNZlHAAAruUCqD7c022.jpg

wKiom1Rn90bwa2QCAAAnxKZPviw573.jpg

$: 行尾锚定

wKiom1Rn992Dn9OsAABUVqi8zQ4698.jpg

^$: 空白行

wKioL1Rn97jzZmneAAAenUt1Ne0790.jpg

&;: 词首锚定,b

wKiom1Rn90byVk_uAABaYsN1ZxI198.jpg

&;:词尾锚定,b

wKioL1Rn97nyYjxCAABc4v_lUhY370.jpg

&;pattern&;匹配单词

wKioL1Rn97mSdMl3AABQM_cHM5U062.jpg

egrep演示

wKioL1Rn_I6DsVzvAAAvVB38F6k151.jpg

通过一下演示可以表明词首或词尾锚定只能锚定数字和字母,字母和数字连在一起相当于一个单词

wKioL1Rop-ygI3lFAAFTgaAKtlg589.jpg

分组,或

qqgodrrrgoogle

dddgooglerrrgod

godee

googlerrrgod

grep演示

加和不加分组括号没什么区别

wKioL1Rn_gKC48aqAACq7_YQeaI916.jpg

加完后前面再加一个"^",只能显示行首锚定的god和google

wKiom1Rn_ZDDgMg-AAA6rB_6Rcs377.jpg

不加分组括号,只能显示行首锚定god的和所有行有google的

wKioL1Rn_gOQ-BfrAABY6_wr0wY741.jpg

egrep演示

wKiom1Rn_fHQoEq_AABNhjA7Lzs314.jpg

后向引用 1,2,3:

模式自左而右,后向引用:模式中,如果使用()实现了分组,在某行文本的检查中,如果()的模式匹配到了某内容,此内容后面的模式中可以被引用;引用第#个左括号以及与其匹配右括号之间的模式匹配到的内容

演示文本:go! go! Let's go.

grep演示

如不加括号,提示无效的向后引用

wKioL1Rn_1uy6fSYAAAsOKhKEDY835.jpg

加括号后能正确匹配

wKioL1Rn__CDAnZ1AAAyKjQZ0Ko913.jpg

把匹配范围缩小到g后的10个字符内

wKiom1Rn_umAZrkAAAA3dzLb6OM629.jpg

向后引用o这个单词

wKioL1Rn_1vDIWTTAADQxB-czY4482.jpg

egrep演示

只要把""去掉

wKiom1Rn_umzRMbqAAApWd4sJBE296.jpg

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读