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

正则表达式之grep命令

发布时间:2020-12-14 01:39:24 所属栏目:百科 来源:网络整理
导读:本文的正则表达式是grep命令的规范,与ls、find等命令的规范有所差别。 不管在什么命令中,正则表达式最好使用双引号引起来,防止被当成是命令。 grep元字符集 :通常用于打开或关闭后续字符的特殊含义,如(...)与{...} ^ :锚定行的开始如:'^grep'匹

本文的正则表达式是grep命令的规范,与ls、find等命令的规范有所差别。

不管在什么命令中,正则表达式最好使用双引号引起来,防止被当成是命令。

grep元字符集

:通常用于打开或关闭后续字符的特殊含义,如(...)与{...}
^ :锚定行的开始如:'^grep'匹配所有以grep开头的行。
$ :锚定行的结束如:'grep$'匹配所有以grep结尾的行。

. :匹配一个非换行符的字符如:'gr.p'匹配gr后接一个任意字符,然后是p。
* :匹配零个或多个先前字符。 .*一起用代表任意长度任意字符。
[] :匹配一个指定范围内的字符,如'[Gg]rep'匹配Grep和grep。
[^] :匹配一个不在指定范围内的字符,如:'[^A-FH-Z]rep'匹配不包含A-R和T-Z的一个字母开头,紧跟rep的行。
(..) :标记匹配字符,如'(love)',love被标记为1。如(ab).*1 : 指匹配ab组合的两次重现,中间可存在任意数目的字符。可以将最多9个独立的子模式存储在单个模式中
x{m}: 重复字符x,m次,如:'0{5}'匹配包含5个o的行。如果x是不确定字符,比如[:digit:]{5}表示出现5个数字
x{m,} :重复字符x,至少m次,如:'o{5,}'匹配至少有5个o的行。
w :匹配文字和数字字符,也就是[A-Za-z0-9],如:'Gw*p'匹配以G后跟零个或多个文字或数字字符,然后是p。
b :单词锁定符,如:'bgrepb'只匹配grep。

示例

在first.sh文件中,有以下的内容

pshiz@163.com
pshiz@163com
pshiz@163.com.
pshiz@
@163.com
pshiz@mail2.sysu.edu.cn
pshiz@126.com
yangr@163.com
pp@163.com

1)找出含有163的行

> grep "163" first.sh

2)找出以cn结尾的行

> grep "cn$" first.sh

3)找出其中字符长度为7的行

> grep "^.......$" first.sh

4)找出163邮箱格式正确的行(用户名为数字、字母和下划线)

> grep "^[[:digit:][:alpha:]_]{1,}@163.com" first.sh

注意:"[[:digit:][:alpha:]_]*@163.com"是不对的,@163.com这一行也会被包含

5)找出邮箱格式正确的行(假设格式是xx@xx.xx.xx,每个xx都是数字、字母和下划线的组合)

> grep "^[[:digit:][:alpha:]_]{1,}@([[:digit:][:alpha:]_]{1,}.){1,}[[:digit:][:alpha:]_]{1,}$" first.sh

易错:切记开头符号^与结束符号$的使用

(编辑:李大同)

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

    推荐文章
      热点阅读