1.什么是正则表达式?

简单的说,正则表达式就是为处理大量的字符串而定义的一套规则和方法,

例如:假设“@”代表boy,“!”代表girl。echo“@!” === “boygirl”

通过定义的这些特殊符号的辅助,系统管理员就可以快速过滤,替换或输出需要的字符串。

linux正则表达式一般以行为单位处理的。

2.为什么要学会正则表达式?

在企业工作中,我们每天做的linux运维工作中,时刻都会面对大量带有字符串的文本配置、程序、命令输出及日志文件等,而我们经常会有迫切的需要,从大量的字符串内容中查找符合工作需要的特定的字符串。这就要靠正则表达式。因此,可以说正则表达式就是为过滤这些字符串的需求而生的。

3.容易混淆的两个注意事项:

a.正则表达式应用非常广泛,存在于各种语言中,例如:php,python,java等。但是,我们今天讲的是linux系统运维工作中的正则表达式,即linux正则表达式,最常应用正则表达式的命令就是grep(egrep),sed,awk,换句话说linux三剑客要想能工作的更高效,那一定离不开正则表达式配合的。

b.正则表达式和我们常用的通配符特殊字符是有本质区别的,这一点要注意。

通配符例子:ls  *.log 这里的*就是通配符(表示所有),不是正则表达式。

一、基础正则第一波字符说明:

1)^word  匹配以word开头的内容。  vi/vim编辑器里^代表一行的开头

2)word$  匹配以word结尾的内容。  vi/vim编辑器里$代表一行的结尾

3)^$  表示空行

二、基础正则第二波字符说明:

4).     代表且只能代表任意一个字符

5)\     转义符号,例 \. 就只代表点本身,让有着特殊身份意义的字符脱掉马甲,还原原型

6)*     重复0个或多个前面的一个字符,例0*匹配没有0,有1个0或多个00000

7).*    匹配所有字符。延伸 ^.* 以任意多个字符开头。.*$ 以任意多个字符结尾

提示:点(.)的特殊含义小结:

1、当前目录

2.使得文件生效相当于source

3.隐藏文件

4.任意一个字符(grep正则)

三、基础正则第三波字符说明:

8)[abc]  匹配字符集合内的任意一个字符[a-zA-Z],[0-9]

9)[^abc]  匹配不包含^后的任意一个字符的内容

中括号里的^为取反,注意和中括号外面以 ... 开头区别

10)a\{n,m\}  重复n到m次,前一个重复的字符。如果用egrep/sed  -r可以去掉斜线

a\{n,\}  重复至少n次,前一个重复的字符。如果用egrep/sed  -r可以去掉斜线

a\{n\}  重复n次,前一个重复的字符。如果用egrep/sed  -r可以去掉斜线

a\{,m\}

注意:egrep(grep  -E)或sed  -r过滤一般特殊字符可以不转义(不用\)

三剑客“grep”总结

grep一般常用参数:

-a:在二进制文件中,以文本文件的方式搜索数据

-c:计算找到‘搜索字符串’的次数

-o:仅显示出匹配regexp的内容(用于统计出现文中的次数)

-i:忽略大小写的不同,所以大小写视为相同

-n:匹配的内容在其行首显示行号

-v:反向选择,即显示没有‘搜索字符串’内容的那一行

-E:扩张的grep,即egrep

--color=auto:以特定颜色高亮显示匹配关键字

提示:-i,-v为常用参数

-A:After的意思,显示匹配字符串及其后n行的数据

-B:before的意思,显示匹配字符串及其前n行的数据

-C:context的意思,显示匹配字符串及其前后各num行

linux正则表达式基础部分的更多相关文章

  1. linux正则表达式基础

    linux中awk,sed,grep等 命令使用区别正则表达式基础 在最简单的情况下,一个正则表达式看上去就是一个普通的查找串.例如,正则表达式"testing"中没有包含任何元字 ...

  2. linux正则表达式之-基础正则表达式(基于grep)

    linux正则表达式: 简单的说,正则表达式就是为处理大量的字符串而定义的一套规则和方法,如:假设@代表123456,!代表abcde.通过定义的这些特殊符号的铺助,系统管理员就可以快速的过滤,替换或 ...

  3. (大数据工程师学习路径)第一步 Linux 基础入门----正则表达式基础

    介绍 虽然我们这一节的标题是正则表达式,但实际这一节只是介绍grep,sed,awk这三个命令,而正则表达式作为这三个命令的一种使用方式(命令输出中可以包含正则表达式).正则表达式本身的内容很多,要把 ...

  4. Linux学习(2)- 正则表达式基础

    Linux学习(2)- 正则表达式基础 一.基础正则表达式介绍与练习 学习内容 正则表达式特殊符号 [:alnum:]代表英文大小写字母及数字 [:alpha:]代表英文大小写字母 [:blank:] ...

  5. linux正则表达式(基础正则表达式+扩展正则表达式)

    正则表达式应用非常广泛,例如:php,Python,java等,但在linux中最常用的正则表达式的命令就是grep(egrep),sed,awk等,换句话 说linux三剑客要想能工作的更高效,就一 ...

  6. Linux正则表达式、shell基础、文件查找及打包压缩

    Linux正则表达式.shell基础.文件查找及打包压缩 一.正则表达式 Linux正则表达式分为2类: 1.基本正则表达式(BRE) 2.扩展正则表达式(ERE) 两者的区别: 1.使用扩展正则表达 ...

  7. bash shell学习-正则表达式基础 (笔记)

    A gentleman is open-minded and optimistic; a small person is narrow-minded and pessimistic. "君子 ...

  8. Linux正则表达式grep与egrep

    grep -io "http:/=[A-Z0-9]\{16\}" ./wsxf.txt >wsxf_urls.txt Linux正则表达式grep与egrep 正则表达式:它 ...

  9. Linux的基础命令, django的安装与使用

    一. Linux一些基础指令 cat命令, 用于查看纯文本文件(常用于内容较少的) cat 校花的故事.txt # 查看文件 cat -n 校花的故事.txt # 查看文件并显示行号 -n 显示行号 ...

随机推荐

  1. python3——“->”的含义

    ->:标记返回函数注释,信息作为.__annotations__属性提供,__annotations__属性是字典.键return是用于在箭头后检索值的键.但是在Python中3.5,PEP 4 ...

  2. 04.Spring Ioc 容器 - 刷新

    基本概念 Spring Ioc 容器被创建之后,接下来就是它的初始化过程了.该过程包含了配置.刷新两个步骤 . 刷新由 Spring 容器自己实现,具体发生在 ConfigurableApplicat ...

  3. CentOS安装MySQL,(常规安装方式MySQL无法远程连接)

    转载自:https://blog.csdn.net/z13615480737/article/details/78906598 CentOS7默认数据库是mariadb, 但是 好多用的都是mysql ...

  4. 《C#高效编程》读书笔记11-理解短小方法的优势

    我们最好尽可能的编写最清晰的代码,将优化交给JIT编译器完成.一个常见的错误优化是,将大量逻辑放在一个函数中,以期减少额外的方法调用开销.这种将函数逻辑直接写在循环内部的常见优化做法却会降低.NET应 ...

  5. C 碎片四 流程控制

    前面介绍了程序中用到的一些基本要素(常量,变量,运算符,表达式),他们是构成程序的基本成分,下面将介绍C语言中流程控制的三种结构:顺序结构.分支结构.循环结构 一.顺序结构 顺序结构的程序设计是最简单 ...

  6. 在spark2中的shell使用python3

    在spark2中的shell使用python3 spark2.0.0中的python默认使用python2,可以通过以下两种方式之一使用python3: PYSPARK_PYTHON=python3 ...

  7. Authentication to host '***‘' for user 'root' using method 'mysql_native_password' failed with message: Reading from the stream has failed.

    如下场景: 一个页面中需要用户填入文字信息,并上传图片,上传图片是单独调用上传文件接口的,当用户上传图片后,马上点保存,就会报错. Authentication to host '***‘' for ...

  8. 从零开始的全栈工程师——js篇2.2

    条件语句 补充: var a=“hello world” a这个变量是字符串了 对于里面每一个字母来说 他是字节 里面有11个字节 字节总数用length表示 如下: 根据上面的内容咱们又发现了一个运 ...

  9. 内置函数isNaN()

    NaN(not a number)的产生:算术运算返回一个未定义的或无法表示的值 1.NaN并不一定用于表示某些值超出表示范围的情况.将某些不能强制转换为数值的非数值转换为数值的时候,也会得到NaN. ...

  10. 会话跟踪之Cookie

    一:简介 Cookie主要用来存储用户信息,追踪用户会话.web客户端访问服务端直接采用的协议是Http,Http协议是一种无状态协议,无状态表现在不能够保留用户访问状态,无法记录用户信息.每一次的请 ...