一、引用自:https://www.cnblogs.com/chensiqiqi/p/6285060.html

二、grep示例

grep -i   忽略大小写

grep -w 精准匹配

grep -E 匹配正则

^(以什么开头),.*(任意字符,但不包含空格)

三、正则表达式分类

  1、基本正则表达式(BRE , basic regular expression)

  2、高级功能:扩展正则表达式 (ERE , extended regular expression)

  3、BRE和ERE的区别仅仅是元字符的不同:

    a、基本正则表达式只承认的元字符有^$.[]*其它字符识别为普通字符:\(\)

    b、扩展正则表达式则添加了() {} ? + | 等

    c、只有在用反斜杠""进行转义的情况下,字符() {} 才会在基本正则表达式被当做元字符处理,而扩展正则表达式中,任何元符号前面加上反斜杠反而会使其被当做普通字符来处理。

四、如何区分通配符和正则表达式

  1、不需要思考的判断方法:在三剑客awk,sed,grep,egrep都是正则,其它都是通配符。

五、基础正则表达式

  1、^ : ^word搜索以word开头的内容

      grep "^m" aaa.test.txt

  2、$ : word$搜索以word结尾的内容

      grep "m$" aaa.txt

  3、^$ :表示空行,不是空格

      grep -n "^$" aaa.txt

  4、.   : 代表且只能代表任意一个字符(不匹配空行)

      grep -n ".m" aaa.txt

  5、\   :转义字符,让有特殊含义的字符脱掉马甲现出原形,如 \. 只表示小数点

      grep -n "\.c" aaa.txt

  6、*   : 重复之前的字符或文本0个或多个,之前的文本或字符连续0次或多次

      grep -n "q*" aaa.txt

  7、.*  :  任意多个字符

      grep -n ".*" aaa.txt

  8、^.*  : 以任意多个字符串开头,.*尽可能多,有多少算多少,贪婪性

      grep -n "^.*o" aaa.txt

  9、括号表达式 : [abc][0-9][\.,/]  : 匹配字符集合内的任意一个字符a 或 b 或 c : [a-z] 匹配所有小写字母;表示一个整体,内藏无限可能;[abc]找a或b或c 也可以写成[a-c]

      grep -n "^[ade]"  aaa.txt

      grep -n "[abc]"  aaa.txt

  10、[^abc] 匹配不包含^后的任意字符a或b或c,是对[abc]的取反,且与^含义不同,若要匹配^字符,则^不能放在[]里的最前面,[ab^c]

      grep -n "[^abc]" aaa.txt

       grep -n "[ab^c]"  aaa.txt

  11、a\{n,m\} 重复前面a字符n到m次

      grep "d\{2,3\}"  aaa.txt

六、扩展正则表达式ERE

  1、+ : 重复前一个字符一次或一次以上,前一个字符连续一个或多个,把连续的文本/字符取出

    

  grep -E 等价于 egrep

  2、? : 重复前面一个字符0次或1次(.是有且只有1个)

    

  3、管道符 表示或者 同时过滤多个字符

    netstat -anpt | grep -E "25|631"

  4、() 分组过滤被括起来的东西表示一个整体(一个字符),后向引用

    

    表示aa  或者 ab 或者ac

七、基本正则和扩展正则区别

    基本正则BRE  扩展正则ERE

      \?        ?

      \+        +

      \{\}        {}

      \(\)        ()

      \

八、元字符

  1、\b   : 单词边界。    \bcool\b,不匹配coolant

  2、\B :非单词边界。cool\B匹配coolant不匹配cool

  3、\d :单个数字字符  b\db匹配b2b,不匹配bcb

  4、\D :单个非数字字符 b\Db匹配bcb不匹配b2b

  5、\w :单个单词字符(字母,数字与_) \w匹配1或a,不匹配&

  6、\W :单个非单词字符   \W匹配&,不匹配1或a

  7、\n :换行符   \n匹配一个新行

  8、\s :单个空白字符    x\sx匹配x x,不匹配xx

  9、\S :单个非空白字符 x\Sx匹配xkx,不匹配x x

  10、\r :回车 ,\r匹配回车

  11、\t  : 横向制表符,\t匹配一个横向制表符

  12、\v :垂直制表符,\v匹配一个垂直制表符

  13、\f :换页符,\f匹配一个换页符

Linux 正则的更多相关文章

  1. Linux正则与文本处理工具(10)

    正则表达式 (Regular Expression, RE, 或称为常规表达式)是通过一些特殊字符的排列,用于『查找/替换/删除』一行或多行文字或字符串,简单的说,正则表达式就是用在字串的处理上面的一 ...

  2. [svc]linux正则实战(grep/sed/awk)

    企业实战: 过滤ip 过滤出第二行的 192.168.2.11. eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 ine ...

  3. Linux正则和grep命令

    设置命令的默认参数和别名 每次都要输入 ls -l ,烦不烦,我想用 ll 来表示 ls -l, 可以,只要在 ~/.bashrc 中加上 alias ll='ls -l' ,然后运行 source ...

  4. 最全的三剑客和linux正则符号讲解

    第2章 linux符号系列与三剑客    194 2.1 特殊符号系列    194 2.1.1 普通符号系列    194 2.1.2 引号符号系列    196 2.1.3 定向符号    197 ...

  5. [svc]linux正则及grep常用手法

    正则测试 可以用sublime等工具快速的检测正则是否合适 china : 匹配此行中任意位置有china字符的行 ^china : 匹配此以china开关的行 china$ : 匹配以china结尾 ...

  6. linux正则

    正则表达式 分两类:  基本正则表达式:BRE  扩展正则表达式:ERE :grep -E, egrep 正则表达式引擎:  采用不同算法,检查处理正则表达式的软件模块       PCRE(Perl ...

  7. linux正则sed实战案例详解

    目录 1. 将nginx.conf中的注释全部去掉 2. 将nginx.com中每一行之前增加注释 3.要求一键修改本机的ip 4.将/etc/passwd中的root修改成ROOT 1. 将ngin ...

  8. linux正则转换csv文件

  9. Linux基础介绍【第四篇】

    Linux文件和目录的属性及权限 命令: [root@oldboy ~]# ls -lhi total 40K 24973 -rw-------. 1 root root 1.1K Dec 10 16 ...

随机推荐

  1. 前端学习 -- Css -- 行间距

    在CSS并没有为我们提供一个直接设置行间距的方式,我们只能通过设置行高来间接的设置行间距,行高越大行间距越大.使用line-height来设置行高 .行高类似于我们上学单线本,单线本是一行一行,线与线 ...

  2. 解题:CF1055F Tree and XOR

    题面 树上路径是可以通过到根的路径和LCA差出来的,所以建立一棵Trie树按位贪心即可......吗? 发现空间并不够,需要我们每层现建,要记录每个数和它异或答案之后在这一层插进去的编号 #inclu ...

  3. [APIO2018] New Home 新家

    扫描线+线段树+二分答案+set+STL 就是把区间数颜色做得很好 时间看成线段,扫描线 对于某一个询问位置x 二分答案转化,看区间内有没有k种颜色.. 一个区间数颜色的套路是,prei上一个该颜色出 ...

  4. Linux上安装node和npm

    说明:最近工作中需要用到react前端框架使得可以前后分离,在安装react之前呢我是需要先安装node,和npm的 由于npm是依赖于node 的,所以我这边只要安装了node后,npm也就安装完成 ...

  5. linux command ------ dmesg

    驱动开发中使用函数 printk() 打印的信息可以通过 dmesg 查看 简介 ‘dmesg’命令显示linux内核的环形缓冲区信息,我们可以从中获得诸如系统架构.cpu.挂载的硬件,RAM等多个运 ...

  6. zabbix server安装(二)

    https://mp.weixin.qq.com/s/ogaqiX4vhtGLepuNf-1ItA zabbix依赖LNMP或LAMP,下面讲解LNMP安装到zabbix web页面的访问. 一.ng ...

  7. vue-cli内部webpack的打包优化

    在此之前,我们先谈谈前端项目的性能优化. 优化前端项目无非就是2方面的优化: 一.网络性能优化(重点) 减少请求数量(webpack的天职就是打包) 减少请求资源大小(压缩gzip,后端会完成) CD ...

  8. Spring Boot 源码分析 数据源 + Mybatis 配置

    公司今年开始使用 Spring Boot 开发,当然使用 Spring Boot 也是大势所趋,尤其是现在微服务的趋向,当然是选择基于Spring Boot 的 Spring Cloud.(所谓的 S ...

  9. Sublime Text 2 绿化与汉化 [Windows篇]

    其实 ST3 已经出了很久了,可是我这个人恋旧,一直钟爱 ST2,所以就选择她了.最近我的 ST2 越来越卡,甚至有时候输入都会延迟1秒,所以打算自己搞个绿化版. 打开 Sublime Text 官网 ...

  10. 对git简单的认识

    了解git工作区.暂存区.版本库: 其中,使用 git add .就是将文件添加到了暂存区:而git commit -m ‘desc’:将暂存区的文件添加到版本库: 每次更新项目的步骤: 1)每次更新 ...