讨论:很少使用且当前正在使用的标准UNIX实用程序

一周前,UNIX管道的开发人员和“面向组件的程序设计”概念的作者道格拉斯·麦克罗伊(Douglas McIlroy)谈到了有趣且与众不同的UNIX程序,这些程序并未得到广泛使用。该出版物在Hacker News上展开了积极的讨论。我们收集了最有趣的内容,如果您参加讨论,我们将很高兴。


照片- 弗吉尼亚·约翰逊 -不飞溅

处理文字


在类似UNIX的操作系统上,存在一套用于格式化文本的标准工具。错字实用程序使您可以查看文档中的错字和意味 -单词在材料中仅出现一次。有趣的是,该程序不使用字典来搜索拼写错误。它仅依赖于文件中的信息,并对三字组(三个字符的序列)执行频率分析。在这种情况下,所有必要的计数器都存储在26x26x26的数组中。据道格拉斯·麦克罗伊(Douglas McIlroy)说,这种内存量不足以容纳几个单字节计数器。因此,为了保存它们,它们以对数形式编写。

如今,错字已被更现代,更准确的基于字典的拼写检查器所取代。但是,仍然记得该工具-几年前,一个发烧友介绍了Go上的错字实现。存储库仍在更新。

另一个80年代的文档工具是Lorinda Cherry Writer's Workbench和Bell Labs的Nina McDonald。它包括用于确定语音和文档样式的部分,搜索重言式和过于复杂的句子的工具。实用程序被开发为辅助的学生,并在同一时间,他们使用美国科罗拉多州立大学的学生。但是到了90年代初,Writer's Workbench被遗忘了,因为它没有包含在Unix 7版中。但是,此工具沿袭了模仿者的道路-例如,用于IBM PC的Grammatik

UNIX还具有用于简化公式工作的标准工具。有一个用于处理数学表达式eqn的语言预处理器值得注意的是,为了显示公式,开发人员只需用简单的文字和符号来描述它就足够了。关键字允许您垂直和水平移动数学符号,更改其大小和其他参数。如果将行传递给实用程序:

sum from { k = 1 } to N { k sup 2 }

在输出中将生成以下公式:

k=1Nk2


在1980年代和1990年代,eqn 帮助 IT专业人员编写软件手册。但是后来它被甚至Habr 使用的LaTeX系统代替但是eqn是此类的第一个工具,仍然是类UNIX操作系统的一部分。

处理文件


在主题线程中,Hacker News的居民指出了几个很少使用的实用程序来处理文件。其中之一 通讯对它们进行比较。这是diff的简化模拟,为了在脚本中工作而经过了改进。它由理查德·斯托曼(Richard Stallman)本人和戴维·麦肯齐(David MacKenzie )共同撰写

程序的输出包括三列。第一列包含第一个文件唯一的值,第二列-第二个文件唯一的值。第三列包括常规值。为了使通讯正常工作,必须对要比较的文档进行词法排序。因此,该站点的一位居民建议以以下形式使用该实用程序:

comm <(sort fileA.txt) <(sort fileB.txt)

Comm对于验证单词的拼写很有用。将它们与参考词典文档进行比较就足够了。考虑到与排序文件有关的微妙之处,可以认为 Stallman和Mackenzie专门为该用户案例编写了实用程序。


照片-Marnix Hogendoorn-不飞溅

同样,关于HN的讨论参与者指出粘贴操作符功能,这对他来说并不明显。它允许您在输出期间替换数据流或将一个流分成两列:

$ paste <( echo -e 'foo\nbar' ) <( echo -e 'baz\nqux' )
foo     baz
bar     qux
$ echo -e 'foo\nbar\nbaz\nqux' | paste - -
foo     bar
baz     qux

一位用户指出,这些通常不是最理想的解决方案:以fmt开头exmlr开头并以jotrs结束

您发现了类UNIX操作系统的哪些标准功能?

我们在公司博客中写的内容:

域名系统的开发方式:ARPANET时代
域名系统历史记录:第一台DNS服务器
DNS历史记录:域名成为付费
域名时域名系统历史记录:“战争”协议

All Articles