0Pricing
DevOps Bootcamp · 课时

使用正则表达式高级应用 Grep

使用“grep”应用复杂的正则表达式,在文件中执行高度精准且高效的文本搜索。

使用正则表达式高级应用 Grep 是 CoddyKit 上的免费 DevOps Bootcamp 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 DevOps Bootcamp 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 DevOps Bootcamp 课程共包含 4 节课。

Grep 的正则表达式超能力

欢迎学习使用正则表达式的高级 Grep!在上一课中,我们学习了正则表达式本身。现在,让我们在强大的 grep 命令中释放它们的全部潜力。

grep 是搜索文件中文本模式的常用工具。将它与高级正则表达式结合后,无论模式多么复杂,您都可以精确定位所需内容。

启用扩展正则表达式(-E)

默认情况下,grep 使用基本正则表达式(BRE)。要使用 +、?、| 和 () 等更高级的功能,我们需要启用扩展正则表达式(ERE)。

您可以使用 -E 选项,或使用 egrep 命令来实现这一点;后者本质上就是 grep -E。让我们创建一个用于练习的示例文件:

echo "apple
banana
appanana
orange
app" > fruits.txt

量词:一次或多次(+)

+ 量词可以匹配前面字符或分组出现一次或多次的情况。当您预计某个模式至少重复一次时,它非常有用。

例如,要查找包含字母 'p' 后跟一个或多个 'a' 的行,可以使用 pa+。

grep -E 'pa+' fruits.txt

量词:零次或多次(*)

* 量词可以匹配前面字符或分组出现零次或多次的情况。当某个字符可能存在但并非必须存在时,这很有用。

让我们查找包含字母 'b' 后跟零个或多个 'a' 的行:

grep -E 'ba*' fruits.txt

量词:零次或一次(?)

? 量词可以匹配前面字符或分组出现零次或一次的情况。您可以把它理解为让字符变为可选。

想同时查找 'color' 和 'colour' 吗?您可以让 'u' 变为可选:

echo "color
colour
coor" > words.txt
grep -E 'colou?r' words.txt

使用 {} 指定次数(花括号)

如果需要更精确的控制,您可以使用花括号 {} 指定确切次数或次数范围:

  • a{3}:恰好出现三个 'a'。
  • a{2,}:出现两个或更多 'a'。
  • a{1,3}:出现一到三个 'a'。

让我们查找字母 'a' 恰好重复两次的行:

grep -E 'a{2}' fruits.txt

锚点:开头和结尾(^、$)

锚点不匹配字符,而是匹配位置。^ 锚点匹配一行的开头,$ 匹配一行的结尾。

这对于确保模式匹配整行,或确保从您指定的准确位置开始或结束,至关重要。

  • ^apple:以 'apple' 开头的行。
  • banana$:以 'banana' 结尾的行。
  • ^apple$:只包含 'apple' 的行。
grep -E '^app' fruits.txt

使用 OR 进行交替匹配(|)

|(竖线)符号充当 OR 运算符。它允许您匹配一个模式或另一个模式。这对于同时搜索多个不同的单词或短语非常有用。

例如,要查找包含 'apple' 或 'orange' 的行:

grep -E 'apple|orange' fruits.txt

使用 () 对模式分组

圆括号 () 用于对正则表达式的部分内容进行分组。这样,您就可以将量词或交替匹配应用于整个分组,而不只是单个字符。

例如,要查找 'b' 后面出现一次或多次的 'ana':

grep -E 'b(ana)+' fruits.txt

快速检查:高级 Grep

给定文件 data.txt,其内容如下:

cat
cats
catt
catterpillar
dog

哪个命令可以正确查找包含 'cat' 后跟零个或多个 't' 的行?

回顾:Grep 的正则表达式能力

您已经掌握了使用扩展正则表达式的高级 grep 技巧!我们学习了:

  • 使用 -E 实现扩展正则表达式功能。
  • 量词:+(一次或多次)、*(零次或多次)、?(零次或一次)以及用于指定次数的 {}。
  • 锚点:^(行的开头)和 $(行的结尾)。
  • 使用交替符号 | 表示 OR 条件。
  • 使用 () 对模式进行分组。

这些工具可以帮助您执行极其精确且灵活的文本搜索,让您真正成为命令行高手!

常见问题解答

「使用正则表达式高级应用 Grep」课时是免费的吗?

是的 — 「使用正则表达式高级应用 Grep」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 DevOps Bootcamp 课程的其余内容,请升级到 CoddyKit PRO。 DevOps Bootcamp 课程共包含 4 节课。

「使用正则表达式高级应用 Grep」这节课中我会学到什么?

使用“grep”应用复杂的正则表达式,在文件中执行高度精准且高效的文本搜索。 你通过在浏览器中直接运行的动手代码来练习 DevOps Bootcamp,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 DevOps Bootcamp 需要有经验吗?

无需任何先前经验。CoddyKit 上的 DevOps Bootcamp 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。

「使用正则表达式高级应用 Grep」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 DevOps Bootcamp 课中编写并运行代码吗?

能。每节 DevOps Bootcamp 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 正则表达式简介(Regex)
  2. 使用正则表达式高级应用 Grep
  3. 结合正则表达式使用 sed/awk
  4. 捕获组、反向引用与替换
← 返回 DevOps Bootcamp