详解Linux命令中的正则表达式

所属分类: 脚本专栏 / linux shell 阅读数: 1035
收藏 0 赞 0 分享

命令中的正则表达式

 如果要在命令输出或文本中筛选内容时使用模糊查找,就需要使用正则表达式。正则表达式是一套由多个元字符组成的模糊查找模式,使用正则表达式可以快速查找和定位文本中指定的内容。

 1、单字符匹配符. 

 正则表达式主要由一些元字符和匹配模式组成 

单字符匹配符可以匹配任意单个字符,这个字符的功能和文件名匹配符中的?功能相同

 使用正则表达式查找文本,首先需要使用元字符组成一个查找模式

 (1)使用查找模式时,通常将其放入两个斜杠//中,然后再放入命令,例如要在一个文本中查找匹配模式/.i...../,可能选项就有:只要小写字母没有出现在行首,或行尾的最后有5个字符都能匹配 

 2、单字符或字符串重复匹配符* 

 用来匹配单个字符或者一个字符串序列的一次或者多次重复出现 

 3、行首匹配符^

  用于在匹配中指示行首位置字符串或者模式,使用时需要将行首匹配符放在要匹配的字符串或模式的前面 

例如对命令ls -1 使用行首匹配/^1/,结果都是以1开头的

 4、行尾匹配符$ 

 用于在文本的每一行的行尾匹配字符串或模式,使用时将行尾匹配符放在字符串或模式后面

 例如在文本中匹配所有行尾是love的行 

  /love$/

 5、反斜杠屏蔽符\ 

 该符用来屏蔽一些特殊字符的特殊含义,常见的特殊字符可能是引用符号,注释符号,通配符和逻辑运算符等,下面列举一些特殊的符号

  注释、分隔符号:#、;等  

引用符号:$、``、""等

  元字符:.、*、^、$、?、[]、\等 

  逻辑运算符或操作符:||、&&等

 在命令中使用这些字符时,都要使用反斜杠将其特殊含义屏蔽 

 例如使用乘法符号*做乘法运算,就要用反斜杠将其特殊含义屏蔽在做使用 

  # expr 256 \* 256 

 6、范围匹配符[]和排除范围匹配符[^]

 与文件名通配符中的范围匹配符用法基本相同  

    (1)匹配单词love和Love:

  /[L]ove/ 

     (2)不匹配所有的字母:

  [^a-z]

 7、词首、词尾匹配符 \< 和 \> 

 用于在单词开头和单词结尾匹配特定的字符或模式

  (1)例如要匹配以disc 为词首的文本,可以使用 

  /\<disc/ 

    (2)要匹配以ment为词尾的文本,可以使用:  

  /ment\>/ 

 8、重复次数匹配符"x\{\}"

    可以全精确匹配字符或字符串连续出现的次数或次数范围 

(1)要匹配字母m出现次数为5次的文本,可以使用:  

   /m\{5\}/ 

  (2)要匹配字母m出现次数至少5次的文本,可以使用:  

   /m\{5,\}/  

  (3)匹配字母m出现次数在5至10次的文本,可以使用:  

   /m\{5,10\}/

 9、组合并使用正则表达式

 (1)在查找和筛选信息时,有时需要去除文本中的空行,由于空行没有任 何字符,可以使用行首,行尾匹配符匹配空行 

  /^$/ 

 (2)有时一些文本为了看上去更加美观,会使用一种字符填充整行,可以使 用以下模式匹配这些行: 

  /^.*$/ 

 (3)匹配以the或The开头的所有行

  /^[tT]he/

 (4)排除以the和The开头的所有行 

  /^[^Tt]he/ 

 (5)匹配一个IP地址:

  /[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}/

 (6)匹配一个6个字母组成的字符串,前两个字符是字母,中间两个字符是22 且最后两个字符是小写字母: 

  [a-z]\{2\}22[a-z]\{2\} 

 (7)要精确匹配单词love:

  /\<love\>/

以上所述是小编给大家介绍的详解Linux命令中的正则表达式,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持

更多精彩内容其他人还在看

linux whatis与whatis database 使用及查询方法(man使用实例)

在学习man命令时候,估计很多朋友都发现有man –f ,man –k 参数,可以查出很多数据。这些有的与man手册页相同,有些不是属于手册页的。它们数据怎么收集来的,并且whatis是怎么样工作的
收藏 0 赞 0 分享

linux dev 常见特殊设备介绍与应用(loop,null,zero,full,random)

这篇文章主要介绍了linux dev 常见特殊设备介绍与应用(loop,null,zero,full,random),需要的朋友可以参考下
收藏 0 赞 0 分享

linux shell命令快捷获得系统帮助(一)[man-pages定义规范]

linux命令帮助,一般有2种,命令自身代码里面带有使用帮助说明,这种一般很精简,太长了,程序自身的大小以及日常维护不方便。还有一种,就是带有帮助文件,类似windows的chm格式文件。下面我说下这2种怎么样查阅
收藏 0 赞 0 分享

linux shell实现随机数几种方法分享(date,random,uuid)

这篇文章主要介绍了linux shell实现随机数多种方法(date,random,uuid),需要的朋友可以参考下
收藏 0 赞 0 分享

linux shell 脚本实现tcp/upd协议通讯(重定向应用)

这篇文章主要介绍了linux shell 脚本实现tcp/upd协议通讯(重定向应用),需要的朋友可以参考下
收藏 0 赞 0 分享

linux shell数据重定向(输入重定向与输出重定向)详细分析

这篇文章主要介绍了linux shell数据重定向(输入重定向与输出重定向)详细分析,需要的朋友可以参考下
收藏 0 赞 0 分享

linux shell 管道命令(pipe)使用及与shell重定向区别

这篇文章主要介绍了linux shell 管道命令(pipe)使用及与shell重定向区别,需要的朋友可以参考下
收藏 0 赞 0 分享

Linux下使用tcpdump抓包的实现方法

tcpdump是Linux下面的一个开源的抓包工具,和Windows下面的wireshark抓包工具一样, 支持抓取指定网口、指定目的地址、指定源地址、指定端口、指定协议的数据。这篇文章主要介绍了Linux下使用tcpdump抓包的实现方法,需要的朋友可以参考下
收藏 0 赞 0 分享

零基础入门篇之Linux及Arm-Linux程序开发笔记

这篇文章主要介绍了零基础入门篇之Linux及Arm-Linux程序开发笔记,需要的朋友可以参考下
收藏 0 赞 0 分享

Linux 中 CURL常用命令详解

这篇文章主要介绍了Linux 中 CURL常用命令详解,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多