基本正则符号
正则符号 | 描述 |
---|---|
abc | 匹配abc |
^ | 匹配开头 |
$ | 匹配结尾 |
[集合] | 匹配集合中的任意字符 |
[^集合] | 对集合求反 |
- | 匹配任意单个字符 |
* | 匹配前一个字符任意次(包含0次) |
+ | 匹配前一个字符至少一次 |
? | 匹配前一个字符0或1次 |
() | 组合与保留 |
| | 或者 |
.* | 匹配任意 |
{n,m} | 匹配前一个字符n到m次 |
{n,} | 匹配前一个字符至少n次 |
{n} | 匹配前一个字符n次 |
perl | |
\b | 匹配单词边界 |
\w | 匹配字符数字下划线 |
\W | 和\w相反 |
\s | 匹配空白 |
\d | 匹配数字 |
\d+ | 匹配多个数字 |
\D | 匹配非数字 |
grep语法
- 用法:grep[选项] 匹配模式 [文件]
- 常用选项
-i 忽略大小写
-v 取反匹配
-w 匹配单词
-q 静默匹配,不将结果显示在屏幕上
- 过滤包含the的行
grep the
- 不区分大小写过滤包含the的行
grep -i the
- 过滤不包含the的行
grep [^the]
grep -v the - 过滤包含数字的行
grep [0-9]
grep -P “\d” - 过滤包含bet 或者better的行
grep -E “(bet|better)”
- 过滤包含2个字母o的行:
grep “0{2}”
grep -E “o{2}” - 过滤包含1-2个字母o的行
grep “0{1,2}”
grep -E “o{1,2}” - 过滤不包含字母o的行:
grep -v “o”
- 过滤大写字母开头的行:
grep “^[A-Z]”
- 过滤小写字母开头的行:
grep “^[a-z]”
- 过滤ou前不是th的行
grep -E “[^(th)]ou”
- 过滤不以标点符号结束的行
grep “[^.]$”
- 过滤空白行
grep “^$”
- 过滤以.结尾的行
grep “.$”
- 过滤以数字开始的行
grep “^[0-9]”
- 过滤包含2个以上z行
grep -E “z{2,}”
- 过滤所有字母
grep “[a-zA-Z]”
- 过滤所有标点符号
grep -P “\W”