1700437556
spell脚本最初由史蒂夫·约翰逊编写。其基本思路是,将文档中的单词与词典中的单词做比对。任何出现在文档中但不在词典中的单词都有可能是拼写错误。这个脚本大概是这样的:
1700437557
1700437558
cat document |tr A-Z a-z | # 转换为小写tr -d ‘,.
:;()?!’ | # 移除标点符号tr ‘ ‘ ‘\n’ # 将单词切割为每行一个sort | # 对单词做排序uniq | # 去重comm -1- dict # 输出可输入但在词典中不存在的单词
1700437559
1700437560
1700437561
1700437562
1700437563
1700437564
所有这些程序都是现成的。其中最特别的是comm,用来查找两个已排序的输入文件的相同内容行,或者查找只在其中一个文件中存在的行,诸如此类。本例中的词典是/usr/dict/web2文件,里面列出了前文提到的Webster’s Second International Dictionary中的单词,每行一个。
1700437565
1700437566
有一天,我被安排为威廉·科尔比(William Colby)做演示,他当时是中央情报局(The Center Intelligence Agency,CIA)局长,因此显然是个重要人物。陪同他的仍然是比尔·贝克。作为总统国外情报顾问委员会(President’s Foreign Intelligence Advisory Board)的负责人[7],比尔本身也拥有相当的情报资质。
1700437567
1700437568
我想展示Unix如何让某些种类的编程变得简单,但spell脚本的速度不是特别快,而且我也不想干等着,所以我提前运行脚本,将输出结果捕获到文件,然后写了个新脚本。新脚本的任务是休眠两秒,跟着将前一天计算的结果输出。
1700437569
1700437570
sleep 2cat previously.computed.output
1700437571
1700437572
1700437573
1700437574
1700437575
1700437576
演示效果很好。如果科尔比先生多少听懂了一点的话,他一定会认为拼写检查脚本运行得足够快。当然,对于看过任何演示的人来说,这里有个教训:眼见未必为实!
1700437577
1700437578
公关部门还制作了宣传片,讲述贝尔实验室的丰功伟绩,其中就有几部着重介绍Unix。多亏有YouTube,我还能看到老朋友们(和我自己)年轻时头发浓密的样子。
1700437579
1700437580
公司甚至还投放了一连串的Unix平面广告。图7-4所示的广告中的儿童积木是我的主意,优劣暂且不论。背景是我提供的Troff文档,显示得不是很清楚。
1700437581
1700437582
1700437583
1700437584
1700437585
图7-4 Unix积木,约1980年(贝尔实验室供图)
1700437586
1700437587
[1] 爱立信于2012年收购Telcordia,次年将其改名为iconectiv。——译者注
1700437588
1700437589
[2] asprin是拜耳公司商标,后成为镇痛药的通用说法;escalator原为奥的斯(Otis)电梯公司商标;zipper原为百路驰(Goodrich)轮胎公司商标;App Store原为苹果公司商标。这些名词因使用普遍,被判定成为通用词,不属特定机构所有。——译者注
1700437590
1700437591
[3] 意为“UNIX是贝尔实验室的商标”。——译者注
1700437592
1700437593
[4] 意为“UNIX是贝尔实验室的脚注”。——译者注
1700437594
1700437595
[5] 意为“男女通用”。——译者注
1700437596
1700437597
[6] 圣詹姆士宫是英国君主的正式王宫。法律上,各国驻英最高使节的正式名称都是驻圣詹姆士朝廷大使而非驻英大使。——译者注
1700437598
1700437599
[7] 事实上威廉·贝克只担任过该委员会成员,没有担任过负责人。本书作者可能记错了。 ——译者注
1700437600
1700437601
1700437602
1700437603
1700437604
1700437605
[
上一页 ]
[ :1.700437556e+09 ]
[
下一页 ]