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

命令中的正则表达式

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

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命令中的正则表达式,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持

(0)

相关推荐

  • Linux基础之正则表达式,用户、组管理命令介绍

    通配符(Globbing) 通配符与元字符类似,通配符主要用于文件名的匹配,而元字符则主要用在字符串的匹配上: 下面介绍几种常用的通配符: * 表示匹配任意位数的任意字符 ? 表示匹配一位任意字符 ^ 表示取反,不包含的意思 [] 表示此区间内的任意一个字符 {} 表示一种集合 \ 转义字符,使具有特殊意义的字符失去原有意义 | 表示'或',匹配一组可选的字符 元字符 元字符是用来描述字符的特殊字符. 常用的元字符及意义如下: * 重复前面的字符0次或者多次 . 匹配任意字符一次 \+ 匹配前面

  • 详解基于Linux下正则表达式(基本正则和扩展正则命令使用实例)

    前言 正则表达式应用广泛,在绝大多数的编程语言都可以完美应用,在Linux中,也有着极大的用处. 使用正则表达式,可以有效的筛选出需要的文本,然后结合相应的支持的工具或语言,完成任务需求. 在本篇博客中,我们使用grep/egrep来完成对正则表达式的调用,其实也可以使用sed等工具,但是sed的使用极大的需要正则表达式,为了在后面sed篇的书写,就只能这样排序了,有需要的朋友可以把这两篇一起来看. 正则表达式的类型 正则表达式可以使用正则表达式引擎实现,正则表达式引擎是解释正则表达式模式并使用

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

    命令中的正则表达式 如果要在命令输出或文本中筛选内容时使用模糊查找,就需要使用正则表达式.正则表达式是一套由多个元字符组成的模糊查找模式,使用正则表达式可以快速查找和定位文本中指定的内容. 1.单字符匹配符.  正则表达式主要由一些元字符和匹配模式组成 单字符匹配符可以匹配任意单个字符,这个字符的功能和文件名匹配符中的?功能相同 使用正则表达式查找文本,首先需要使用元字符组成一个查找模式 (1)使用查找模式时,通常将其放入两个斜杠//中,然后再放入命令,例如要在一个文本中查找匹配模式/.i...

  • 详解Linux命令iostat

    Linux系统出现了性能问题,一般我们可以通过top.iostat.free.vmstat等命令来查看初步定位问题.在一个以前看到系统监控工具,总在想那些监控工具的代理,如何收集系统性能信息,io性能,cpu使用,带宽使用等信息,偶然发现,不同系统均提供有性能分析工具的,代理可通过这些命令获取系统性能信息,个人猜测,不知道具体是不是这样的.其中iostat可以给我们提供丰富的IO状态数据,下边就来看一下iostat如何使用,命令能够输出那些信息. 简述 Linux系统中通过iostat我们能查看

  • 详解Linux命令与文件查找

    一.执行文件名查找 which(查找'执行文件')  //根据PATH环境变量所规范的路径查询 which [-a] command         //其中参数-a是指列出找到所有命令,而非只显示找到的第一个 例如:which ifconfig 二.文件名的查找 1.whereis(寻找特定文件) whereis [-bmsu] filename/directoryname -b :只找二进制的文件 -m :只找在说明文件manual路径下的文件 -s :只找source源文件 -u :查找不

  • 详解Linux命令修改文件的三个时间

    Linux命令如何修改文件的三个时间 本文主要对stat和touch两个命令进行讲解. 如何查看一个文件的元数据呢?可以使用stat命令. File: 'ceshi1'  文件所在路径 Size: 4096       Blocks: 8 文件占据的磁盘块          IO Block: 4096   directory 文件类型 Device: 801h/2049d  文件所在的设备名 Inode: 378  文件索引节点号        Links: 4 被硬链接的次数 Access:

  • 详解linux命令useradd添加用户

    在 Linux 中 useradd 是个很基本的命令,但是使用起来却很不直观.以至于在 Ubuntu 中居然添加了一个 adduser 命令来简化添加用户的操作.本文主要给大家介绍linux命令useradd添加用户的知识. 1.作用 useradd或adduser命令用来建立用户帐号和创建用户的起始目录,使用权限是超级用户. 2.格式 useradd [-d home] [-s shell] [-c comment] [-m [-k template]] [-f inactive] [-e e

  • 详解Linux系统中虚拟设备文件的各种实用用法

    大家好,我是良许. 大家知道,在 Linux 下,一切皆文件,对于设备文件也是如此.我们在工作的过程中,经常会看到 /dev/null 这个玩意,那它到底是什么呢? 专业地讲,/dev/null 是一个虚拟设备文件.而对程序而言,这些虚拟设备文件则会被当成真实的文件对待.程序可以向这种数据源请求数据,所得到的数据将由操作系统提供.但是,这些数据并不是从磁盘上读取到的,而是由操作系统动态生成的.虚拟设备文件的一个典型例子就是 /dev/zero . 然而,当你想向 /dev/null 写入数据时,

  • 详解linux命令查看服务器上的实时日志

    目录 背景 查看实时日志 背景 在项目开发过程中,在调试的阶段,往往需要debug或者进行查看日志.但日志一般隐藏得比较深,不容易直接找到,常用命令可能有如下: # 查看当前路径下,所有日志文件包含"xxx"的文件中所在行 grep "xxx" *.log.* --col # 查看开头 head xxx.log # 查看结尾 tail xxx.log # 查看全部 cat xxx.log 但是,这样输出日志,往往都是调试之后,在重新查找输出的记录,这样虽然也能排查,

  • 详解Linux命令行快捷键

    Ctrl+a:光标移到行首. Ctrl+e:光标移到行尾. Ctrl+l:清除终端.该快捷操作与在命令行键入clear作用相同. Ctrl+d:删除光标后一个字符: Ctrl+u:清除当前行.假如在命令行下工作,使用这一快捷操作可以清除从光标处到行首的字符. Ctrl+Alt+功能键之一会显示一个新屏幕.根据默认设置,从F1到F6是Shell提示屏幕. Ctrl+K:删除从光标到行末所有字符. 向上和向下箭头:显示命令历史. bash保存着以前键入过的命令的列表,这一列表被称为命令历史表. Ta

  • 详解Linux系统中的tempfs与/dev/shm

    tmpfs 是 Linux/Unix 系统上的一种基于内存的文件系统,即 tmpfs 使用内存或 swap 分区来存储文件. Linux 内核中的 VM 子系统负责在后台管理虚拟内存资源 Virtual Memory,即 RAM 和 swap 资源,透明地将 RAM 页移动到交换分区或从交换分区到 RAM 页,tmpfs 文件系统需要 VM 子系统的页面来存储文件.tmpfs 自己并不知道这些页面是在交换分区还是在 RAM 中:做这种决定是 VM 子系统的工作.tmpfs 文件系统所知道的就是它

  • 详解Linux内核中的container_of函数

    前言 在linux 内核中,container_of 函数使用非常广,例如 linux内核链表 list_head.工作队列work_struct中. 在linux内核中大名鼎鼎的宏container_of() ,其实它的语法很简单,只是一些指针的灵活应用,它分两步: 第一步,首先定义一个临时的数据类型(通过typeof( ((type *)0)->member )获得)与ptr相同的指针变量__mptr,然后用它来保存ptr的值. 第二步,用(char *)__mptr减去member在结构体

随机推荐