视频原文:Where GREP Came From - Computerphile正则表达式
今天在有土逼网看了一个颇有意思的视频,想和你们分享一下。bash
用过 Linux 的人确定都知道grep
指令,你有没有好奇过,这个奇怪的名字是怎么来的呢?微信
这会是一个颇有意思的故事。app
在远古时代,计算资源是极其有限的,内存大概只有32kb、64kb 这个级别,disk 也只有几M。这使得软件设计不得不极其简单。编辑器
unix 有一款文字编辑器,叫作ed
,做者是大名鼎鼎的Ken Thompson,下面这位:spa
ed
的指令都只有一个字符:设计
ed
强大的地方在于,能够简单的操做多行:unix
1,10p
: 打印1-10行1,$p
: 打印全部行$d
: 删除最后一行还有正则表达式,用//
包裹起来code
/print/p
cdn
可是还有一个问题,内存是很是小的,可能装不下整个文件。
当时还有一位叫作Lee E. McMahon的计算机科学家从事text analysis 方向的工做。
他想经过text analysis的手段研究一下,The Federalist Papers (联邦党人文集,做者有不少不少人,不少学者想找出是谁写了哪一部分)的做者状况。The Federalist Papers 一共有85篇,加起来也就1M 左右,可是,ed
装不下啊。。
因而 Lee 把这个问题向Ken Thompson反应了,因而次日,Ken Thompson对ed
的源码作了些修改,开发出了grep
,可以实现从多个文件中查找知足特定正则表达式的字符串。
ed
中有一个指令,叫作g
,global
单词的缩写,能够和其余指令结合使用,好比g/print/p
打印后面全部保护print
的行。
如今看出点东西来了吗:
g/re/p
复制代码
因此Ken Thompson把这个程序命名为grep
。
这个故过后面还有彩蛋:
Professor Brian Kernighan90年代在普林斯顿大学教书的时候,给学生们布置了一个任务,给你ed
的源代码(大概1800行 c 代码),给你一个星期的时间,写一个grep
程序出来。
结果代表:None of them are Ken Thompson ~
视频下面的这个评论也颇有意思:
若是你像我同样真正热爱计算机科学,喜欢研究底层逻辑,欢迎关注个人微信公众号: