本文讲述了 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 是一夜之间写出来的这个传说,严格来说有点夸张。更真实的情况是:Ken 手头已经有了现成的代码积木,他只是用这些积木迅速重新拼凑出另一个程序,并换了个更有趣的名字。
- Ken 把这串命令缩成一个词:grep。而 grep 也由此成了 Unix 世界中从文本中搜索关键词最自然的表达。
📊 文章信息
AI 初评:82
来源:dbaplus社群
作者:dbaplus社群
分类:软件编程
语言:中文
阅读时间:8 分钟
字数:1765
标签: grep, Unix, Ken Thompson, ed 编辑器, 命令行工具