博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
grep及正则表达式
阅读量:6905 次
发布时间:2019-06-27

本文共 1333 字,大约阅读时间需要 4 分钟。

文本查找的需要:grep,egrep,fgrep

grep(Global Research):根据模式,搜索文本,并将符合模式的文本行显示出来。

Pattern:文本字符和正则表达式的元字符组合而成的匹配条件

grep [OPTIONS] PATTERN [FILE...]

       -i:忽略字符大小写

       --color:把匹配到的字符用高亮颜色显示出来,因为加上--color用起来会方便很多,所以用alias给grep取个别名alias grep='grep --color'

       -v:显示没有被模式匹配到的行

       -o:只显示被模式匹配到的字符串

 

正则表达式:regular expression,REGEXP

正则表通常被用来检索、替换那些符合某个模式(规则)的文本。

元字符:

.:匹配任意单个字符

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

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

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

 

匹配次数(贪婪模式,即尽可能长的去匹配):

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

        eg这些个字符串里a,b,ab,aab,acb,adb,amnb哪个能满足a*b

            b:b前面的a出现0次

            aab:b前面的a出现2次

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

     eg:a.*b:以a开头b结尾的字符串

\(此处\是用来转义的)?:匹配其前面的字符1次或0次

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

    eg\{1,\}:匹配其前面的字符至少一次

 

位置锁定:

^:锚定行首,此字符后面的任意内容必须出现在行首

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

^$:空白行

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

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

!!!注意:两个\b的作用不同表现形式为一个放在锚定词前一个放在锚定词尾

 

分组:

\(\)

    \(ab\)*

   后向引用 

   \1:引用第一个左括号以及与之对应的右括号所包括的所有内容

   \2:引用第一个左括号以及与之对应的右括号所包括的所有内容

   \3:引用第一个左括号以及与之对应的右括号所包括的所有内容

 

fgrep:不支持正则表达式,执行速度快

 

 

例子:

grep(Global Research):根据模式,搜索文本,并将符合模式的文本行显示出来

1、

     

    查找/etc/passwd中有root的行并显示出来

2、grep --color:把匹配到的字符用高亮颜色显示出来

     

     因为加上--color用起来会方便很多,所以通常用alias给grep取个别名alias grep='grep --color'

     

正则表达式:regular expression,REGEXP

   位置锁定:

     (1)^:锚定行首,此字符后面的任意内容必须出现在行首

                

      (2)$:锚定行尾,此字符后面的任意内容必须出现在行尾

              显示以数字结尾的行

              

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

                  

             

 

转载于:https://www.cnblogs.com/itmeatball/p/7450026.html

你可能感兴趣的文章
FMDB 使用方法
查看>>
Chrome NativeClient创建 (转)
查看>>
silverlight ItemTemplate和ItemPanel实例
查看>>
使用request.js代理post失败的问题
查看>>
Fiddler如何模拟弱网环境进行测试
查看>>
简单介绍数据流动的控制
查看>>
GYM 101502I. Move Between Numbers
查看>>
Win10无法启动软件提示MSVCP110.dll丢失
查看>>
面向切面和面向对象的关系
查看>>
hdu 2032 杨辉三角
查看>>
Centos7安装python3和pip3
查看>>
spring集合类型注入
查看>>
EnumMap 两种使用方式的比较
查看>>
smarty课程---smarty3的安装和使用
查看>>
m_Orchestrate learning system---mo系统权限思考(如何实现以及注意什么)
查看>>
Dcloud课程8 开心一刻应用如何实现
查看>>
html5--2.9新的布局元素(5)-hgroup/address
查看>>
jar包和war包的介绍和区别
查看>>
jQuery.获取过滤点
查看>>
64位Windows系统下32位应用程序连接MySql
查看>>