一、匹配操作符
- ‘\’
转义字符 - .
匹配任意单个字符 - []
字符序列单字符占位
[1234a] 连续字符
[^12] 取反
[a-k] 区间 - ^
行首 - $
行尾 - <, > ,<abc
单词首尾边界 - |
连接操作符:或,满足其中一个 - (,)
选择操作符 - \n
n代表数字,引用选择操作符匹配结果
二、重复操作符
- ? 匹配0到1次
- ‘*’ 匹配0到多次
- ‘+’ 匹配1到多次
- {n}匹配n次
- {n,m}匹配n到m次
三、与扩展正则表达式的区别 grep basic
扩展表达式需要加\转义grep才可以识别, 或者grep直接加 E
四 匹配任意字符
- .*
五、示例
创建一个文件grep.txt,填入下面内容
ooxx12121212ooxx
ooxx 12121212
oox 12121212
1212 ooxx 1212
oo3xx
oo4xx
ooWxx
oomxx
$ooxx
oo1234xx
ooxyzxx
查找指定内容
- 查找包含 ooxx单词的行
grep "\<ooxx\>" grep.txt
- ooxx开头行
grep "^ooxx" grep.txt
- ooxx单词开头行
grep "^ooxx\>" grep.txt
- ooxx中间出现一个数字的行
grep "oo[0-9]xx" grep.txt
- ooxx中间出现多个数字的行
grep - E "oo[0-9]+xx" grep.txt
- ooxx中间出现4个数字的行
grep -E "oo[0-9]{4}xx" grep.txt
- ooxx......ooxx:ooxx中间包含未知元素后在以ooxx结尾
grep -E "ooxx.*ooxx" grep.txt
如果结尾变成xxoo,可以使用()引用(适用于正则较长的场景)
grep -E "(oo)(xx).*\1\2" grep.txt