← 回總覽

grep 命令真是一夜间就写好的?grep 为什么叫 grep?

📅 2026-05-08 07:15 dbaplus社群 软件编程 2 分鐘 1434 字 評分: 82
grep Unix Ken Thompson ed 编辑器 命令行工具
📌 一句话摘要 本文讲述了 Unix 经典命令 grep 的起源故事,澄清了「一夜写就」的传说,并解释了其名称来源于 ed 编辑器的 g/re/p 命令。 📝 详细摘要 文章以程序员熟悉的 grep 命令为切入点,追溯了其诞生于 1970 年代初 Unix 早期时代的历史背景。当时,Unix 的标准文本编辑器 ed 是行编辑器,受限于内存,无法处理超过几十 KB 的文本。语言学家 Lee McMahon 为了分析《联邦党人文集》的作者归属,需要从超过 1 MB 的文档中搜索包含特定词的行,于是向 Ken Thompson 求助。传说 Ken 一夜之间写成了 grep,但文章澄清了更真实的情

📌 一句话摘要

本文讲述了 Unix 经典命令 grep 的起源故事,澄清了「一夜写就」的传说,并解释了其名称来源于 ed 编辑器的 g/re/p 命令。

📝 详细摘要

文章以程序员熟悉的 grep 命令为切入点,追溯了其诞生于 1970 年代初 Unix 早期时代的历史背景。当时,Unix 的标准文本编辑器 ed 是行编辑器,受限于内存,无法处理超过几十 KB 的文本。语言学家 Lee McMahon 为了分析《联邦党人文集》的作者归属,需要从超过 1 MB 的文档中搜索包含特定词的行,于是向 Ken Thompson 求助。传说 Ken 一夜之间写成了 grep,但文章澄清了更真实的情况:Ken 此前已有名为 s 的私人工具,他只是在此基础上快速修改并赋予了新名字。grep 的名称则直接来源于 ed 编辑器中的命令 g//p,意为全局搜索匹配正则表达式的行并打印。文章最后指出,grep 体现了「写一个小而精的工具,做好一件事」的 Unix 哲学。

💡 主要观点

- grep 命令并非 Ken Thompson 一夜之间从零写就。 传说中 Ken 一夜写出 grep,但实际是他已有名为 s 的私人工具,在此基础上快速修改并交付,体现了代码复用的思想。

grep 的名称来源于 ed 编辑器的命令 g//p。 该命令的含义是全局搜索(globally)匹配正则表达式()的行并打印(print),Ken 将其缩写为 grep,这个名字也成为了 Unix 世界文本搜索的代名词。
grep 的诞生背景是早期计算机内存限制和行编辑器的局限性。 在 1970 年代,计算机内存极小,ed 等行编辑器无法处理大文件。语言学家 McMahon 分析《联邦党人文集》的需求直接催生了 grep 的诞生。
grep 是 Unix 哲学的典型代表。 grep 专注于「从文本中搜索关键词」这一单一任务,并将其做到极致,体现了「写一个小而精的工具,做好一件事」的设计理念。

💬 文章金句

- 写一个小而精的工具,做好一件事。

  • grep 是一夜之间写出来的这个传说,严格来说有点夸张。更真实的情况是:Ken 手头已经有了现成的代码积木,他只是用这些积木迅速重新拼凑出另一个程序,并换了个更有趣的名字。
  • Ken 把这串命令缩成一个词:grep。而 grep 也由此成了 Unix 世界中从文本中搜索关键词最自然的表达。

📊 文章信息

AI 初评:82

来源:dbaplus社群

作者:dbaplus社群

分类:软件编程

语言:中文

阅读时间:8 分钟

字数:1765

标签: grep, Unix, Ken Thompson, ed 编辑器, 命令行工具

阅读完整文章

查看原文 → 發佈: 2026-05-08 07:15:00 收錄: 2026-05-08 10:00:01

🤖 問 AI

針對這篇文章提問,AI 會根據文章內容回答。按 Ctrl+Enter 送出。