Linux grep 正则表达式

17 Mar 2025 | 阅读 2 分钟

grep 工具具有以下用于使用正则表达式的选项

  • -E : 将字符串读取为 ERE (扩展正则表达式)
  • -G : 将字符串读取为 BRE (基本正则表达式)
  • -P : 将字符串读取为 PRCE (Perl 正则表达式)
  • -F : 将字符串按字面意思读取。

打印匹配模式的行

grep 命令将搜索与指定模式匹配的行。

语法

示例

Linux Grep Regular Expression1

查看上面的截图,所有匹配的模式行都已显示,并且模式已高亮显示。


连接字符

如果模式是连接的字符,则必须按原样匹配,才能显示该行。

示例

Linux Grep Regular Expression2

查看上面的截图,显示了与指定模式完全匹配的行。


一个或另一个

这里使用管道符 (|) 作为 OR 来表示一个或另一个。显示了所有三个版本。选项 -E 和 -P 的语法相同,但 -G 语法使用了 (\)。

语法

示例

Linux Grep Regular Expression3

查看上面的截图,应匹配模式 'j' 或 'g' 中的任何一个来显示行。


一个或多个 / 零个或多个

* 表示模式出现零次或多次,+ 表示模式出现一次或多次。

语法

示例

Linux Grep Regular Expression4

查看上面的截图,* 字符显示了模式 '1' 出现零次或多次。但 + 字符显示了出现一次或多次。


匹配字符串末尾

要匹配字符串的末尾,我们使用 $ 符号。

语法

示例

Linux Grep Regular Expression5

查看上面的截图,显示了匹配字符串末尾的行。


匹配字符串开头

要匹配文件开头或开始,我们使用脱字符 (^)。

语法

示例

Linux Grep Regular Expression6

查看上面的截图,显示了匹配字符串开头或开始的行。


分隔单词

语法

示例

Linux Grep Regular Expression7

查看上面的截图,通过输入命令 "grep some file",将显示所有匹配单词 'some' 的行。但通过输入命令 "grep '\bsome\b' file",将仅显示匹配单词 'some' 的行。

注意: 这也可以通过 -w 选项来完成。

语法

示例

Linux Grep Regular Expression8

查看上面的截图,命令 "grep -w some file" 显示的结果与 \b 字符相同。