深入编程挑战:comm 与 tail 程序的拓展与实现
在编程学习与实践中,对已有工具进行拓展和重新实现是提升技能的有效途径。本文将围绕 comm 和 tail 这两个程序展开,探讨如何对 comm 程序进行改进以匹配 GNU 版本的输出,并详细介绍如何编写一个 Rust 版本的 tail 程序。
comm 程序的拓展
最初呈现的 comm 程序版本模仿了 BSD 版本。为了让程序更加完善,我们需要对其进行一些修改。
- 匹配 GNU 输出 :要对程序进行调整,使其输出与 GNU 版本一致,同时添加该版本的额外选项。在完成修改后,需更新测试套件和测试文件,以此验证程序是否能精确地模拟 GNU 版本的行为。
- 改变列选择标志 :将列抑制标志转变为选择标志。例如,-12 意味着仅显示前两列;若未指定列选择,则默认显示所有列。这与 wcr 程序的工作方式类似,wcr 程序默认会显示行、单词和字符的所有列,而选择其中任何一列都会隐藏未被选择的列。同样,完成修改后要更新测试,确保程序能正确运行。
- 编写 joinr 程序 :comm 程序能对两个文件执行基本的连接操作,这与 join 程序类似。我们可以参考编写 commr 程序的经验,编写一个名为 joinr 的 Rust 版本 join 程序。具体操作是,先生成输入文件,再使用 join 程序创建输出文件,最后用这些输出文件验证我们编写的 joinr 程序是否与原工具的输出一致。
在实现 comm 程序拓展的过程中,我们能学到一些重要的编程技巧:
- 迭代器的灵活
Rust实现comm与tail程序拓展
超级会员免费看
订阅专栏 解锁全文
299

被折叠的 条评论
为什么被折叠?



