Linux正则表达式
Linux 正则表达式
注意:
1.linux 正则表达式一般以行为单位处理的
2.alias grep='grep --color=auto',让匹配的内容显示颜色
3.注意字符集,export LCC_ALL=C
一:什么是正则表达式?
简单的说,正则表达式就是为处理大量的字符串而定义的一套规则的方法,例如:假设“@”代表ysg,“!”代表ing。echo "@!"=="ysging"
作用为:通过定义的这些特殊符号的辅助,系统管理员就可以快速过滤,替换或输出需要的字符串。linux正则表达式一般以行为单位处理的。
二:为什么要学会正则表达式?
在企业工作中,我们每天做的linux运维工作中,时刻都会面对大量带有字符串的文本配置、程序、命令输出及日志文件等,而我们经常会有迫切的需要,从大量的字符串内容中查找符合工作需要的特定的字符串,这就要靠正则表达式。因此,可以说正则表达式就是为过滤这样的字符串而生的。
三:容易混淆的两个注意事项:
a.正则表达式应用非常广泛,存在于各种语音中,例如:php、python、java等。但是,这里说的是linux系统运维工作中的正则表达式,即linux正则表达式,最常应用正则表达式的命令就是grep(egrep)、sed、awk,换句话说linux三剑客要想能工作的更高效,那一定离不开正则表达式配合的。
b.正则表达式和我们常用的通配符特殊字符是有本质区别的,这一点要注意。比如:通配符中,ls .log 这里的 就是通配符(表示所有),不是正则表达式。
要做的准备:
alias grep='grep --color=auto'
export LC_ALL=C
案例一:
^ 与 $ 的使用,注意是区分大小写的。
正则表达式 | 说明 |
---|---|
.^I | 匹配以 I 开头的内容。vi/vim编辑器里 ^ 代表一行的开头 |
x$ | 匹配以 x 结尾的内容。vi/vim编辑器里 $ 代表一行的结尾 |
^$ | 可以理解为以结尾为开头的意思,即空行 |
案例二:
正则表达式 | 说明 |
---|---|
. | 代表且只能代表任意一个字符 |
\ | 转义符号 |
* | 重复0个或多个前面的一个字符 |
.* | 匹配所有字符 |
^.* | 以任意字符开头 |
.*$ | 以任意字符结尾 |
点(.)的含义小结
1.当前目录
2.是的文件生效相当于source
3.隐藏文件
4.任意一个字符(grep 正则)
grep中的两个参数 -i -o :-i 表示过滤出的内容不区分大小写,-o 表示只显示过滤出的字符。
案例三:
正则表达式 | 说明 |
---|---|
[abc] | 匹配字符集合内的任意一个字符 [a-zA-Z] ,[0-9] |
[^abc] | 匹配不包含^后 任意一个字符的内容 |
a{n,m} | 重复 n 到 m 次,前一个重复的字符。如果用egrep/sed -r 可以去掉斜线 |
a{n,} | 重复至少 n 次,前一个重复的字符。如果用egrep/sed -r 可以去掉斜线 |
a{n} | 重复 n 次,前一个重复的字符。如果用egrep/sed -r 可以去掉斜线 |
a{,m} | 重复最多 m 次,前一个重复的字符。如果用egrep/sed -r 可以去掉斜线 |
转载于:https://blog.51cto.com/12384628/2115370
上一篇: 图文详解:归并排序之c语言实现
下一篇: Linux正则表达式