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

基本正则表达式grep命令使用

发布时间:2020-12-14 01:12:01 所属栏目:百科 来源:网络整理
导读:grep(Global search REgular expression and Print out the line.)是一个文本搜索工具,根据用户指定的文本模式(搜索条件)对目标文件进行逐行搜索,显示能匹配到的行。 使用man命令查看grep使用语法格式: grep [OPTIONS] PATTERN [FILE...] grep [OPTIO

grep(Global search REgular expression and Print out the line.)是一个文本搜索工具,根据用户指定的文本模式(搜索条件)对目标文件进行逐行搜索,显示能匹配到的行。

使用man命令查看grep使用语法格式:

grep [OPTIONS] PATTERN [FILE...]

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


其中option为grep命令的选项,pattern为要匹配的简单字符串或携带特殊字符的模式字符串,file为文件列表,可有多个文件。

例如: ls /etc | grep '*p' 查找输入内容中含有字母p

linux针对grep查询结果输入时高亮显示参数设置:alias grep='grep --color=auto'

正则表达式:

是一类字符所书写的模式,其中许多字符不表示其字面意义,而是表达控制或通配等功能;

元字符:不表示其字面意义,而用于额外功能性描述

基本正则表达式的元字符:

1、 字符匹配:

.:匹配单个字符 grep 'r..t' /etc/passwd

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

[0-9],[[:digit:]]: 所有数字

[a-z],[[:lower:]]: 所有小写字母

[A-Z],[[:upper:]]: 所有大写字母

[[:space:]] :空白字符

[[:punct:]] :特殊字符,标点符号

[[:alpha:]] :所有大小写字母

[[:alnum:]] :所有数字字母

[^]:取反

2、 次数匹配元字符:用于实现指定其前面的字符所能够出现的次数

*:任意长度,它前面的字符可以出现任意次

例如:x*y

xxy,xyy,y,

?:0次或1次,它前面的字符是可有可无的

例如:x?y

xy,ay

{m}:m次,它前面的字符要出现m次

例如:x{2}y

xy,xxy,xxxxy匹配子串

{m,n}:至少m次,至多n次

例如:x{2,5}

xy,xxy

{0,m}:至多n次

.*:任意长度的任意字符

工作于贪婪模式:尽可能多的去匹配

3、 位置锚定:

^:行首锚定

写在模式最左侧

$:行尾锚定

写在模式最右侧

^$: 空白行 grep '^$' /etc/issue | wc -l

不包含特殊字符的连续字符组成的串叫单词:

&;:词首,出现于单词左侧,b

&;char

&;:词尾,出现于单词右侧,b

char&;

&;char&;:前后都锚定

4、分组:

()

例如:(ab)*

分组中的模式匹配到的内容,可由正则表达式引擎记忆在内存中,

5、引用:

例如(ab(x)y).*(mn)

有编号:自左而右的左括号,以及与其匹配的右括号

(a(b(c))mn(x)).*1

#:引用第n个括号所匹配到的内容,而非模式本身

例如:

(ab?c).*1

grep命令选项:

-v:反向选取 例如: grep -v '^$' /etc/issue

-o:仅显示匹配到的字串,而非字串所在的行

-i:ignore-case,忽略字符大小写

-E:支持使用扩展正则表达式

-A # 前一行

-B # 后一行

-C # 显示上下文

--color=auto 将pattern在匹配行中高亮输出

注意:

(1).选项区分大小写 (2).多个选项可以一起使用

(编辑:李大同)

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

    推荐文章
      热点阅读