电脑技术学习

对话 UNIX: 掌握强大的命令行

dn001

  如有需要,您可进一步扩展管道,将 uniq 的输出重定向到另外的实用工具。这只需使用另一个管道即可对转换进行扩展。例如,您可在命令之后附加 | less 以使用 less 对输出结果进行分页,或者您可添加 | wc -l 以统计独特文件名的数目。(wc 为 Word count 的首字母缩写,wc 可统计字符、单词和行数。)

  此外,您还可使用 > 来将整个命令序列的输出结果保存到一个文件中(这将覆盖现有的文件内容)。您可使用 >> 以将命令输出结果附加 到现有文件之后(如果文件不存在,则创建新文件)。

  另一个有用的重定向是 <。图 5 所示为如何重定向 stdin 以从文件中进行读取。命令 sort 从指定文件中读取单词列表并按字母顺序进行排序。

  图 5. 重定向标准输入以读取文件内容

  您常常会需要捕获 stdout 和 stderr。例如,如果您正在运行大型的数据挖掘任务,则可能要检查执行过程中的中间输出以及可能出现的任何错误。您可使用重定向语法的一些变种来实现该功能:|&, >&, >>& 可分别对 stdout 和 stderr 实现管道、创建、附加功能。图 6 所示为如何将 stdout 和 stderr 合并到单一的输出流。

  图 6. 合并标准输出和标准错误设备

  Z shell 介绍

  包括 Bourne shell (bash) 和 Korn shell (ksh) 在内的多数现代 Unix shell 都支持这里提到的重定向功能,尽管在这些 shell 中具体语法可能存在细微差别。(请查看您的 shell 文档以了解详细信息)。

标签: