linux模式匹配运算符,linux之正则表达式

文件查找的需要:

grep:(GLOBAL Research) 根据模式(网)去搜索文本,而后将符合模式的文本行显示出来。

【部分匹配,显示时显示一行】

Pattern:模式。(文本字符以及正则表达式元字符组合而成的匹配条件)

例子:grep‘root’/etc/passwd

grep所支持的选项:

-i:忽略大小写

--color 显示颜色

alias grep=’grep --color’

-v: 反向查找,显示没有被模式匹配的行

-o:只显示被模式匹配出来的字符串,每个字符串显示为一行。

回顾一下 globbing(文件名通配)

* :任意长度任意字符

?:任意单个字符

[]:指定范围内的

[^]:指定范围之外的

如何写模式pattern?

正则表达式 Regular EXPression;REGEXP

元字符:

.:用点表示任意单个字符

grep‘r..t’/etc/passwd

[] :匹配指定范围内的任意单个字符

[^]:匹配执行范围之外的任意单个字符

字符集合:[:digit:]  [:space::]  [::upper::]  [:lower:]  [:alpha:]  [:alnum:]

匹配次数:

* :匹配其前面的字符任意次

a,b,ab,aab,acb,adb,amnb,amnbamnbamnb

a*b : a出现任意次,后面跟个b

a.*b: a开头,b结束,中间跟啥都行

.* :这才表示任意长度任意字符

(正则表达式是贪婪模式,尽可能长的匹配。)

\?:表示匹配它前面的字符0次或1次。

a\?b :a出现0次或1次,后面跟个b。

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

\{1,\}

\{1,3\}

grep‘a\{1,3\}b’test.txt

grep‘a.\{1,3\}b’test.txt

位置锚定:

^ :此字符后面的字符,必须出现在行首。

$ :锚定行尾,此字符前面的任意内容必须出现在行尾。

^$ : 这个表示空白行。

\

\>或b:锚定词尾,其后面的任意字符必须作为单词的尾部出现。

grep“root\>”test.txt

grep“\

grep“\”test.txt

grep“\broot\b”test.txt

分组:

\(\)

\(ab\)*:ab可以出现任意次。

实现分组的目的,是后面再次引用它。

\1:调用前面第一个小括号内容

\2

\3

例子:

He love his lover

She like her liker

He like his lover

要求前后一样,匹配

l..e

grep‘\(l..e\).*\1’test.txt

grep‘\([[:digit:]]\).*\1$’test.txt

grep -E 扩展正则表达式

-A 显示匹配行的下面的行显示

-B 显示匹配行的上面的行显示

-C 显示匹配行的上下的行显示

grep --color -B 2‘^core id’/proc/cpuinfo

扩展正则表达式

字符匹配

.

[]

[^]

次数匹配

*

?:这里不用加反斜线

+ : (这个基本正则表达式没有的)匹配其前面的字符至少一次。

+? 《===》*

(m,n): 扩展正则表达式不用使用转义字符

位置锚定:

^

$

\>

\<

分组:

( ) 分组

\1,\2,\3

还支持或者

|:or

C|cat  :表示C或者cat,表示整个左边,整个右边。

grep  --color‘(C|c)at’test.txt

grep --color -E‘^[[:space:]]+’/boot/grub/grub.conf

grep -E  =====> egrep

例子:

匹配0-255的数字。

egrep --color‘\’test.txt

例子:找IP地址

匹配(.)本身

\.

egrep‘(\\.){3}\’test.txt

IP 地址

A类1-127

B类128-191

C类192-223

D类

E类

匹配IP地址

分析:\(\.\){2}\.\

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值