`

《Linux Shell》之一:正则表达式

阅读更多

Bash的通配符:

1.  ?   匹配单个字符,ls -l aa?b.txt

2.  *    匹配任意个字符  ls -l aa*b.txt

3.  []   匹配中括号中的任意一个字符 ls -l aa[trh]b.txt,   ls -l aa[a-d]b.txt

4.  {}   一组表达式,用逗号,隔开,只要满足其中一条即可  ls -l ls{[ro]*a,[s-v]}*a

5.  ^    在[]中使用,表示不等于这里面内容的,注意:是完全匹配,跟正则表达式不一样  ls -l [^myconfig]*.txt

6.  GOLBIGNORE  内部变量GLOBIGNORE保存了通配时所忽略的文件名集合

 

grep 命令:

基本用法:grep [选项] [模式] [文件...]

grep命令由选项、模式、文件三部分组成,它在一个或多个文件中搜索满足模式的文本行,模板后的所有字符串被看成文件名,文件名可以多个,搜索结果被打印到标准输出,不影响原文件内容。

grep命令的选项:

-c    只输出匹配行的数量

-i    搜索时忽略大小写

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

-l    只列出复合匹配的文件名,不列出具体匹配行

-n   列出所有匹配行,并且显示行号

-s   不显示不匹配或无匹配的错误信息

-v   反向匹配,显示所有不匹配的行

-w   匹配整词,并且以模式的字面含义去解析它,而不去解析正则式的元字符

-x    匹配整行,并且也是跟-w一样以字面含义去解析

-r    递归搜索,不仅搜索当前工作目录,而且搜索子目录

-q   禁止输出任何结果,以退出状态值表示搜索是否成功

-b   打印匹配行距离文件头部偏移量,以字节为单位

-o   与-b结合使用,打印匹配的词距离文件头部的偏移量,以字节为单位

-E   支持扩展的正则表达式

-F   不支持正则表达式,按照字符串的字面意思搜索 

 

POSIX字符类:

为了保持不同国家的字符编码一致性,POSIX Portable Operating System Interface增加了特殊的字符类,以[:classname:]的格式给出,grep命令支持POSIX字符类,下面是POSIX类及其意义:
[:upper:]    表示大写字母[A-Z]

[:lower:]     表示小写字母[a-z]

[:digit:]       表示阿拉伯数字[0-9]

[:alnum:]    表示大小写和阿拉伯数字[a-zA-Z0-9]

[:space:]    表示空格或者TAB键

[:alpha:]     表示大小写字母[a-zA-Z]

[:cntrl:]       表示Ctrl键

[:graph:]或[:print:]    表示ASCII码33~126之间的字符

[:xdigit:]      表示16进制数字[0-9A-Fa-f]

 

下面举几个例子:

# 利用POSIX字符类搜索以大写字母开头的行

# grep '^[[:upper:]]' test.txt

 

精确匹配: \<test\> 其实效果跟  grep -w test 是一样的,匹配整个单词test

 

博客新地址:http://yidao620c.github.io

 

分享到:
评论

相关推荐

    linux系统shell正则表达式-练习工具和教材

    在IT领域,Linux系统Shell和正则表达式是两个至关重要的工具,它们在日常的系统管理、数据分析和脚本编写中发挥着巨大的作用。...通过不断的实践和学习,你可以成为一名熟练的Linux Shell和正则表达式使用者。

    运维看家本领之一:Shell脚本编程与正则表达式

    例如,可以编写一个Shell脚本来实时监控系统日志,利用正则表达式匹配特定错误信息,并在发现问题时自动发送警报邮件。 在学习和实践过程中,理解每个符号和结构的含义,多做练习,是掌握这两项技能的关键。通过...

    Linux在合集中使用正则表达式来匹配查找.zip

    “正则表达式运用之 sed工具命令.txt”文件介绍了sed命令,这是一个流编辑器,常与正则表达式结合使用。通过sed,我们可以对输入流中的每一行进行模式匹配,并执行替换、删除、打印等操作。例如,`sed 's/pattern/...

    shell命令处理过程正则表达式

    结合标题"shell命令处理过程正则表达式",我们可以深入探讨如何在Shell环境中使用正则表达式来处理命令和文本。 首先,理解Shell环境变量至关重要。环境变量是在系统启动或Shell启动时设定的一系列参数,它们存储着...

    Shell编程之正则表达式.pptx

    该讲义主要是用于Linux下shell编程。适合Linux初学者,用来学习正则表达式的基础。包含基础正则表达式和实例。

    Linux shell-正则表达式基础-思维导图-

    Linux shell环境中,正则表达式是进行模式匹配和字符串查找的强大工具。以下是对正则表达式基础的详细说明,结合提供的思维导图,我们将深入理解这些基础知识。 1. **星号(*)**: 星号表示匹配前一个字符出现0次或...

    Linux命令行与shell脚本编程-正则表达式的应用案例

    在“Linux命令行与shell脚本编程-正则表达式的应用案例”中,我们将深入探讨如何在Linux环境中运用正则表达式来实现高效的数据操作。 一、Linux命令行中的正则表达式 1. `grep`命令:用于在文件或输入流中查找符合...

    linux shell正则表达式

    在Linux shell中,主要有三种类型的正则表达式: 1. **基本正则表达式(BREs)**:这是最基础的形式,使用反斜杠(\)作为转义字符。例如,`^`表示行首,`$`表示行尾。 2. **扩展正则表达式(EREs)**:相对于BREs,...

    正则表达式详细介绍

    正则表达式是一种强大的文本匹配工具,它能够用来检查、分割、替换字符串,并在很多编程语言和工具中得以应用。正则表达式通常使用简短的字符串来定义复杂的搜索模式,这些模式可以包含普通字符、特殊字符和元字符。...

    Linux中几个正则表达式的用法.doc

    正则表达式是Linux系统中进行文本操作的核心技术之一,它允许我们高效地搜索、替换和提取特定模式的数据。熟练掌握正则表达式能够极大地提高在Linux环境中处理文本任务的效率。通过上述实例,我们可以看到正则表达式...

    linux编写脚本使用expect正则表达式 教程

    例如,CSDN博客中的文章详细介绍了`expect`的正则表达式使用,以及如何结合`sed`和`cut`进行数据处理。另外,`lj`编写的`expert脚本.sh`是一个实际的示例,通过阅读和分析这个脚本,可以更直观地理解`expect`的工作...

    UNIX和Linux Shell正则表达式语法介绍

    正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。本文介绍了UNIX和Linux Shell正则表达式的语法。

    linux shell 正则表达式

    在Linux Shell中,正则表达式是一种强大的文本处理工具,用于匹配、查找、替换等操作。它们允许用户通过使用特定的模式来搜索文本,这些模式可以描述一系列的字符序列。在Shell脚本中,正则表达式常用于`grep`, `sed...

    快速完全精通正则表达式

    通过本书的学习,你将能够掌握如何在各种编程环境中运用正则表达式解决问题,特别是在Linux系统下的Shell脚本编程中。 #### 1. 正则表达式入门 ##### 解决实际问题 正则表达式作为一种强大的文本处理工具,在日常...

    shell正则表达式.zip

    Shell正则表达式是基于Bash或其他Unix/Linux shell环境的正则表达式规则,它与Perl或JavaScript等语言中的正则表达式有许多相似之处,但也存在一些差异。下面我们将深入探讨一些常见的Shell正则表达式知识点: 1. *...

    Linux_Shell正则表达式语法doc

    Linux Shell中的正则表达式是用于模式匹配的强大工具,它允许你在命令行或者脚本中进行复杂的文本查找、替换和处理。以下是对正则表达式关键知识点的详细解释: 1. **元字符**:元字符是具有特殊含义的字符,如`^`...

    linux shell 正则表达式(BREs,EREs,PREs)差异比较.docx

    在Linux shell中,正则表达式主要有三种类型:基本正则表达式(Basic Regular Expressions,BREs)、扩展正则表达式(Extended Regular Expressions,EREs)和Perl正则表达式(Perl Regular Expressions,PREs或pcre...

    Linux_Shell正则表达式语法介绍.txt

    在 Linux Shell 中,正则表达式是一种强大的文本处理工具,广泛应用于文件搜索、数据验证和文本替换等场景。通过理解并掌握正则表达式的语法结构,可以极大地提高日常工作中对文本数据的处理效率。下面将详细介绍 ...

Global site tag (gtag.js) - Google Analytics