GNU 文本实用程序简介----面向文件的过滤(4)
时间:2005-02-04 来源:litie123
这是从寂寞烈火的blog转来的。
使用行集合
到目前为止,我们所见的工具都是单独地处理每行。文本实用程序的另一个子集则把文件看作是行的集合,并对那些行执行全局性的操作。类 UNIX 操作系统之下的管道就内存使用和延迟而言,能够非常高效地操作。当管道中前面的某个管道向 STDOUT 输出一行时,该行将立即对下一阶段可用。然而,下面的实用程序在它们完成(接近完成)处理之前,不会产生输出。 对于大型文件,这其中某些实用程序可能要花一些时间才能完成处理(但是它们对于所执行的任务仍然是最优化的)。
sort
实用程序 sort 仅执行其名称所暗示的任务:它对一个或多个文件中的行排序。它具有各种各样的选项,允许对文件中的字段或字符位置排序,以及允许修改比较运算(数字、日期、大小写敏感,等等)。
sort 的一种常见应用是用于组合多个文件。
可以将字段和字段中的字符位置指定为排序规则,并且还可以按数字排序
uniq
实用程序 uniq 删除完全相同的邻近行――或者在使用某些开关的情况下,可以删除足够近似以至于可以看作是完全相同的邻近行(你可以跳过字段、字符位置,或忽略大小写)。最通常的情况下,uniq 的输入是 sort 的输出,虽然 GNU sort 本身仅包含有限的能力使用 -u 来消除重复的行。 uniq 的最典型应用是使用在表达式 sort list_of_things | uniq 中,用以产生一个单项列表(每行一项)。但是有些美妙的用法允许您分析重复情况,或使用不同的重复规则
tsort
实用程序 tsort 在文本实用程序集合中有一点古怪。该实用程序本身的使用环境相当有限,但是它所做的工作并不是您所以为的文本处理――tsort 对一个有向图执行 拓扑 排序。如果不熟悉这个概念,也用不着惊慌:简单地说,tsort 对于查找依赖关系中的适当次序很有用。例如,安装软件包可能需要在某些次序约束条件下进行,或者某些系统守护进程可能需要在其他守护进程之前初始化。
使用 tsort 实际上相当简单。您只需创建一个列出每个已知依赖关系(每个依赖关系之间用空格分隔)的文件(或流)。这个实用程序将为整个集合产生一个适当的次序(虽然不一定是唯一的)。
pr
pr实用程序是一个用于文本文件的通用格式化器,它提供诸如页眉、 换行、源文本列、页边缩进以及可配置的页面和行宽等格式。然而,pr 本身并不重新换行段落,因此通常可以和 fmt 配合使用。