Linux - 基础正则表达式、扩展正则表达式、grep使用正则表达式
BRE(基础正则表达式):
^ 匹配行首
$ 匹配行尾
. 匹配任意单个字符
* 匹配0个或者多个字符
[] 匹配括号内的字符
[^] 匹配不包含^后的任意字符
BRE(基础正则表达式)只承认的元字符有^$.[]* 其他字符识别为普通字符。
ERE (扩展正则表达式)则添加了() {} ? + | 等。
只有在用反斜杠“\”进行转义的情况下,字符() {}才会在BRE被当作元字符处理,而BRE中,任何元符号前面加上反斜杠反而会使其被当作普通字符来处理。
ERE(扩展正则表达式)
() 分组过滤被括起来的东西表示一个整体(一个字符) --》对应的BRE形式为: \(\)
| 表示或者同时过滤多个字符
? 重复前面一个字符0次或1次(.是有且只有1个) --》对应的BRE形式为: \?
+ 重复前一个字符一次或多次,至少一次 -》对应的BRE形式为: \+
{} 用于表示重复匹配的次数 -》对应的BRE形式为: \{\}
grep 常见正则表达式
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
grep 使用的是基础正则表达式,如果要使用扩展正则表达式,需转义 或者 直接使用 egrep+扩展正则表达式
1. 匹配包含有两个o的行
grep -n 'o\{2,\}' 2.txt 或者 egrep -n 'o{2,}' 2.txt
2. 找出Love 或者love开头的行
grep -n '[Ll]ove' 2.txt
3. 找出good或者glad的行
egrep -n 'g(oo|la)d' 2.txt 或者 egrep -n 'good|glad' 2.txt
本文地址:https://blog.csdn.net/u012865840/article/details/107341731