对话 Unix:您好,shell!
UNIX® 系统中一项最奇特和突出的特性就是其命令行功能。您只需输入包含一定逻辑关系的少量文本,即可使用命令行来将有限的 UNIX 实用工具组合成无限的即时可用的数据转换。
例如,要在当前工作目录下的文件夹层次结构中查找独特文件名的列表,您可在 shell 提示符下输入以下命令:
find . -type f -print | sort | uniq
该命令行中组合了三种不同的实用工具:
find 对指定目录进行深度搜索,在本例中,是对从 . 或 点(代表当前工作目录)开始的文件系统进行搜索并生成满足给定条件的所有项的名称。这里,-type f 告诉 find 只查找文本文件。
sort,顾名思义,将对列表进行处理并生成按字母排序的新列表。
uniq(读做 “unique),扫描列表,比较列表中的相邻元素,以去除任何重复项。例如,假设您具有以下列表:
清单 1. 列表示例
Groucho
Groucho
Chico
Chico
Groucho
Harpo
Zeppo
Zeppo
uniq 可将列表精简为:
清单 2. uniq 命令
Groucho
Chico
Groucho
Harpo
Zeppo
但是,如果首先对 Marx Brothers 的初始列表进行排序(在连续运行中对多次出现的名称进行重排),运行 uniq 会生成以下结果:
清单 3. 运行 uniq
Chico
Groucho
Harpo
Zeppo
要了解 find、sort 和 uniq 的更多扩展特性,请参阅您的 UNIX 系统中每种实用工具的 man 页。
输入数据、输出数据和全部数据
标签: