linux中正则表达式的示例分析

介绍

这篇文章将为大家详细讲解有关linux中正则表达式的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

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

1,什么是正则表达式?

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

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

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

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

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

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

注意字符集问题:

确保字符集:出口LC_ALL=C

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

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

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

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

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

实战举例:

發inux中正则表达式的示例分析"

^ m搜索以m开头的

發inux中正则表达式的示例分析”,

p $搜索以p结尾的

, 發inux中正则表达式的示例分析"

^ $表示空号

, 發inux中正则表达式的示例分析"

去掉空行:<代码> grep - v bqh“^ $”。日志代码

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

, 發inux中正则表达式的示例分析"

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

發inux中正则表达式的示例分析“

查找带0的字符:

發inux中正则表达式的示例分析“

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

發inux中正则表达式的示例分析“

查找以。结尾的字符:

linux中正则表达式的示例分析