本文已参与「新人创作礼」活动, 一起开启掘金创作之路。
优先级
优先级为从上到下从左到右,依次降低:
| 运算符 | 说明 |
|---|---|
| \ | 转义符 |
| (),(?:),(?=),[] | 括号和中括号 |
| *,+,?,{n},{n,},{n,m} | 限定符 |
| ^,$,\ 任何元字符 | 定位点和序列 |
| | | 选择 |
grep 命令
用于打印输出文本中匹配的模式串,它使用正则表达式作为模式匹配的条件。
grep支持三种正则表达式引擎,分别用三个参数指定:
| 参数 | 说明 |
|---|---|
| -E | POSIX 扩展正则表达式,ERE |
| -G | POSIX 基本正则表达式,BRE |
| -P | Perl 正则表达式,PCRE |
不过在你没学过 perl 语言的大多数情况下你将只会使用到 ERE 和 BRE,所以我们接下来的内容都不会讨论到 PCRE 中特有的一些正则表达式语法(它们之间大部分内容是存在交集的,所以你不用担心会遗漏多少重要内容)。
在通过grep命令使用正则表达式之前,先介绍一下它的常用参数:
| 参数 | 说明 |
|---|---|
| -b | 将二进制文件作为文本来进行匹配 |
| -c | 统计以模式匹配的数目 |
| -i | 忽略大小写 |
| -n | 显示匹配文本所在行的行号 |
| -v | 反选,输出不匹配行的内容 |
| -r | 递归匹配查找 |
| -A n | n 为正整数,表示 after 的意思,除了列出匹配行之外,还列出后面的 n 行 |
| -B n | n 为正整数,表示 before 的意思,除了列出匹配行之外,还列出前面的 n 行 |
| --color=auto | 将输出中的匹配项设置为自动颜色显示 |
注:在大多数发行版中是默认设置了 grep 的颜色的,你可以通过参数指定或修改GREP_COLOR环境变量。关于正则表达式和 grep 命令的内容就介绍这么多,下面会介绍两个更强大的工具 sed 和 awk,但同样也正是因为这两个工具的强大,我们的内容无法包含它们的全部,这里将只对基本内容作介绍。 |