系统小窝欢迎您

电脑公司 深度技术
当前位置:系统小窝 > 系统教程 > Linux教程 >

Linux系统grep正则表达式的介绍

时间:2021-04-10 来源:大神到 人气:

Linux系统正则表达式是字符串的标示方法, 主要的正则表达式有sed、vim、awk,当然还包括grep正则表达式。前文我们已经介绍了Linux系统正则表达式的用法,今天就来着重介绍一下Linux系统grep正则表达式。

grep正则表达式元字符集:

^ 锚定行的开始 如:lsquo;^greprsquo;匹配所有以grep开头的行。

$ 锚定行的结束 如:lsquo;grep$rsquo;匹配所有以grep结尾的行。

.匹配一个非换行符的字符 如:lsquo;gr.prsquo;匹配gr后接一个任意字符,然后是p。

* 匹配零个或多个先前字符 如:lsquo;*greprsquo;匹配所有一个或多个空格后紧跟grep的行。 .*一起用代表任意字符。

[] 匹配一个指定范围内的字符,如lsquo;[Gg]reprsquo;匹配Grep和grep。

[^] 匹配一个不在指定范围内的字符,如:lsquo;[^A-FH-Z]reprsquo;匹配不包含A-R和T-Z的一个字母开头,紧跟rep的行。

/(../) 标记匹配字符,如lsquo;/(love/)rsquo;,love被标记为1。

/ 锚定单词的开始,如:lsquo;/匹配包含以grep开头的单词的行。

/》 锚定单词的结束,如rsquo;grep/》lsquo;匹配包含以grep结尾的单词的行。

x/{m/} 重复字符x,m次,如:rsquo;0/{5/}lsquo;匹配包含5个o的行。

x/{m,/} 重复字符x,至少m次,如:rsquo;o/{5,/}lsquo;匹配至少有5个o的行。

x/{m,n/}重复字符x,至少m次,不多于n次,如:rsquo;o/{5,10/}lsquo;匹配5--10个o的行。

/w 匹配文字和数字字符,也就是[A-Za-z0-9],如:rsquo;G/w*plsquo;匹配以G后跟零个或多个文字或数字字符,然后是p。

/b 单词锁定符,如: rsquo;/bgrep/blsquo;只匹配grep。

常用的 grep 选项有:

-c 只输出匹配行的个数。

-i 不区分大小写(只适用于单字符)。

-h 查询多文件时不显示文件名。

-l 查询多文件时只输出包含匹配字符的文件名。

-n 显示匹配行及行号。

-s 不显示不存在或无匹配文本的错误信息。

-v 显示不包含匹配文本的所有行。

-V 显示软件版本信息

使用grep匹配时最好用双引号引起来,防止被系统误认为参数或者特殊命令,也可以匹配多个单词。

关于匹配的实例:

grep -c ;48; test.txt 统计所有以;48;字符开头的行有多少

grep -i ;May; test.txt 不区分大小写查找;May;所有的行)

grep -n ;48; test.txt 显示行号;显示匹配字符;48;的行及行号,相同于 nl test.txt |grep 48)

grep -v ;48; test.txt 显示输出没有字符;48;所有的行)

grep ;471; test.txt 显示输出字符;471;所在的行)

grep ;48;; test.txt 显示输出以字符;48;开头,并在字符;48;后是一个tab键所在的行

grep ;48[34]; test.txt 显示输出以字符;48;开头,第三个字符是;3;或是;4;的所有的行)

grep ;^[^48]; test.txt 显示输出行首不是字符;48;的行)

grep ;[Mm]ay; test.txt 设置大小写查找:显示输出第一个字符以;M;或;m;开头,以字符;ay;结束的行)

grep ;Khellip;D; test.txt 显示输出第一个字符是;K;,第二、三、四是任意字符,第五个字符是;D;所在的行)

grep ;[A-Z][9]D; test.txt 显示输出第一个字符的范围是;A-D;,第二个字符是;9;,第三个字符的是;D;的所有的行

grep ;[35]..1998; test.txt 显示第一个字符是3或5,第二三个字符是任意,以1998结尾的所有行

grep ;4/{2,/}; test.txt 模式出现几率查找:显示输出字符;4;至少重复出现两次的所有行

grep ;9/{3,/}; test.txt 模式出现几率查找:显示输出字符;9;至少重复出现三次的所有行

grep ;9/{2,3/}; test.txt 模式出现几率查找:显示输出字符;9;重复出现的次数在一定范围内,重复出现2次或3次所有行

grep -n ;^$; test.txt 显示输出空行的行号

ls -l |grep ;^d; 如果要查询目录列表中的目录 同:ls -d *

ls -l |grep ;^d[d]; 在一个目录中查询不包含目录的所有文件

ls -l |grpe ;^dhellip;..x..x; 查询其他用户和用户组成员有可执行权限的目录集合

以上就是Linux系统grep正则表达式的用法介绍了,如果是要建设网站或者服务器,那么对正则表达式的需求很大,所以很有必要去了解grep正则表达式。

相关文章

  • Linux系统正则表达式的使用方法

    Linux系统正则表达式的使用方法

    正则表达式不是Linux系统所独有的,但是正则表达式却是Linux系统中应用十分广泛的一种表示法。本文就来稍微介绍一下Linux系统正则表达式的使用方法。...
    2015-09-08 03.09.12
  • Linux下使用grep命令搜索多个单词的方法

    Linux下使用grep命令搜索多个单词的方法

    Linux系统下grep命令主要用来搜索字符串和文件,其实grep命令可以同时搜索多个单词。下面就来介绍一下Linux下使用grep命令搜索多个单词的方法。...
    2021-04-09 03.04.01
  • Linux系统中grep命令操作实例汇总

    Linux系统中grep命令操作实例汇总

    是否还在为不知如何使用grep命令而头疼,如果通过实例的话就更能掌握grep命令的用法,下面小编就给大家介绍下Linux使用grep命令的实例,希望对你有所帮...
    2021-04-09 09.04.10

发表评论

验证码: 看不清?点击更换

注:网友评论仅供其表达个人看法,并不代表本站立场。