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

1、什么是正则表达式?

简单的说,正则表达式就是为处理大量的字符串而定义的一套规则和方法。通过定义的这些特殊符号的辅助,系统管理员就可以快速过滤、替换或者输出需要的字符串。linux正则表达式一般以行为单位处理的。

2、为什么要学正则表达式

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

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

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

2)正则表达式和我们常用的通配符特殊字符是有本质区别的,例如:ls *.txt 这里的*就是通配符(表示所有),不是正则表达式。

注意字符集问题:

确保字符集:export LC_ALL=C

---------------------------------------------

基础正则表达式+扩展正则表达式含义解释:

---------------------------------------------

.   代表且只能代表任意一个字符(不包括空行)
*   重复前面任意0个或多个字符
.*   匹配所有字符。(包括空行)
sed -ri 's#(.*)#\1#g' bqh.txt
把前面正则匹配的括号内的结果,在后面用\1取出来操作。
^   表示以什么开头,^bqh 以bqh开头
$   是以什么结尾
^$   表示空行。
\ 例\.   就只代表点本身,转义符号,让有着特殊身份移动的字符,脱掉马甲,还原原型\$
^.*   以任意多个字符开头。
.*$   以任意多个字符结尾。
(.*)   从第一字符匹配,到空格停止,
[abc]   匹配字符集合内的任意一个字符【a-zA-Z】
[^abc]   匹配不包括^后的任意字符的内容;中括号里的^为取反,注意和以...开头区别。
a\{n,m\}   重复n到m次,前一个重复的字符。如果有用egrep/sed -r 可以去掉斜线。
\{n,\}   重复至少n次,前一个重复的字符。如果有用egrep/sed -r 可以去掉斜线。
\{n\}   重复n次,前一个重复的字符。如果有用egrep/sed -r 可以去掉斜线。
①^word   搜索以word开头的;vi ^ 一行的开够
②word$   搜索以word结尾的;vi $ 一行的开头
③^$   表示空行。
扩展的正则表达式:ERP(egrep或grep -E)

+   重复一个或一个以上前面的字符
? 复0个或一个0前面的字符
|   用或的方式查找多个符合的字符串
()  找出“用户组”字符串

实战举例:

^m 搜索以m开头的

p$搜索以p结尾的

^$表示空号

去掉空行:grep –v “^$” bqh.log

查看去掉的后的空行内容:grep -vn “^$” bqh.log

.   代表且只能代表任意一个字符(不包括空行)

查找带0的字符:

.*   匹配所有字符。(包括空行)

查找以.结尾的字符:

错误方法:grep ".$" bqh.log

正确方法:

grep “\.$” bqh.log

注意:\. 就只代表点本身,转义符号,让有着特殊身份移动的字符,脱掉马甲,还原原型\$

*   例1*重复1个或多个前面的一个字符。

grep –o “1*” bqh.log  //-o精确匹配

^.*      以任意多个字符开头。

.*$      以任意多个字符结尾。

[abc]    匹配字符集合内的任意一个字符【a-zA-Z】

匹配字符集合内的a-z任意一个小写字符:

[^abc] 匹配不包括^后的任意字符的内容;中括号里的^为取反,注意和以...开头区别

匹配非数字的任意字符:

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

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

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

注意:egrep,grep -E或sed -r过滤一般特殊字符可以不转义。多使用参数。

---------------------------------------------------------------------------------

扩展的正则表达式:ERP(egrep或grep -E)

+   重复一个或一个以上前面的字符

?  复0个或一个0前面的字符

|   用或的方式查找多个符合的字符串

()  找出“用户组”字符串

linux正则表达式(基础正则表达式+扩展正则表达式)的更多相关文章

  1. 正则表达式RE与扩展正则表达式ERE——grep与egrep

    grep 正则表达式规则: ^ 行首定位符,表示从行首开始进行模式匹配 . 一个非换行符的字符 [ ] 匹配属于此集合的任意一个字符 [^ ] 匹配不属于此集合的任意一个字符 [a-z] (其指定的集 ...

  2. Shell基本正则表达式和扩展正则表达式

    BRE和ERE的区别 基本正则表达式(BRE)和扩展正则表达式(ERE)的区别仅仅是元字符(meta charactor)的区别而已. BRE: 只有^$.*[]是元字符 ERE: ^$.[]*+() ...

  3. Linux通配符与基础正则表达式、扩展正则表达式

    在Linux命令行操作或者SHELL编程中总是容易混淆一些特殊字符的使用,比如元字符‘*’号,作为通配符匹配文件名时表示0个到无穷多个任意字符.而作为正则表达式匹配字符串时,表示重复0个到无穷多个的前 ...

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

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

  5. bash基础——grep、基本正则表达式、扩展正则表达式、fgrep

    grep grep全称:Globally search a Regular Expression and Print 全局搜索正则表达式 正规表达式本质上是一种"表示方法", 只要 ...

  6. 『忘了再学』Shell基础 — 25、扩展正则表达式

    目录 1.扩展正则表达式说明 2.练习 (1)+和?练习 (2)|和()练习 3.注意(重点) 1.扩展正则表达式说明 熟悉正则表达式的童鞋应该很疑惑,在其他的语言中是没有扩展正则表达式说法的,在Sh ...

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

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

  8. linux正则表达式基础

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

  9. Linux扩展正则表达式

    1. 扩展正则表达式 1.1 +(加号) + 表示前一个字符出现1次或1次以上 1.1.1 理解+ 要求:取出文件内容连续出现的小写字母 [root@oldboyedu50-lnb /oldboy]# ...

随机推荐

  1. Tomcat中配置Url直接访问本地其他磁盘

    在配置 Tomcat serserver.xml 中配置 <Context path="/image" docBase="E:\image" debug= ...

  2. POJ 1002 487-3279(map映照容器的使用)

    Description Businesses like to have memorable telephone numbers. One way to make a telephone number ...

  3. 我进行jvm内存调优的一些记录

    jvm内存调优的一些记录 java内存调优的方法和过程 可以使用 jmap -heap pid号 查看,例如pid是9300,执行的结果可能是这样的. root@ubuntu:~# jmap -hea ...

  4. Docker swarm 实战-部署wordpress

    Docker swarm 实战-部署wordpress 创建一个overlay的网络 docker network create -d overlay demo 6imq8da3vcwvj2n499k ...

  5. Linux分区方式及关闭iptables和selinux的方式

    分区方式一般有三种 第一种:数据不是很重要 /boot(系统的引导分区): 系统引导的信息/软件 系统的内核   200M swap( 交换分区): 为了避免系统内存用光了导致系统 宕机 如果系统内存 ...

  6. Claim-Based Identity for Windows: Technologies and Scenarios

    Claim-Based Identity for Windows: Technologies and Scenarios Active Diretory Federation Services 2.0 ...

  7. CentOS总结归纳之基本操作(linux系管与运维一)

    原创作品,转载请在文章明显位置注明出处:https://www.cnblogs.com/sunshine5683/p/10170009.html 使用命令关闭和重启系统: 一.条件:只有root用户才 ...

  8. ESB企业服务总线

    ESB是企业服务总线(Enterprise Service Bus)的缩写,是中间件技术与Web Service等技术结合的产物,也是SOA系统中的核心基础设施.ESB就是一个服务的中介,形成服务使用 ...

  9. HDU2255(KB10-K 二分图最大权匹配)

    奔小康赚大钱 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Subm ...

  10. Angular echarts图表自适应屏幕指令

    关于echarts图表自适应问题 一.引入js文件 1. 在html页面引入angular.min.js文件 2. 在html页面引入echarts.min.js文件 3. 在html页面引入app. ...