cat 和 tac
head 和 tail
od 和 hexdump
HERE 文档
cat 和 tac
最简单的文本实用程序只是将文件或流的正确内容(或许是那些内容的一部分,或者只是那些内容的重新组织)输出到 STDOUT。
实用程序 cat(conCATenate)从第一行开始,到最后一行结束。实用程序 tac ("cat"的逆向操作)以相反的顺序输出行。两个实用程序都读取作为参数来指定的每个文件,但是如果没有指定文件的话,则默认读取 STDIN。与许多实用程序一样,您可以使用特殊名称 - 来显式地指定 STDIN。
head 和 tail
实用程序 head 和 tail 分别仅输出文件或流的最初部分或最后部分。这两个实用程序的 GNU 版本都支持使用开关 -c 来输出许多字节;两个实用程序都最常以面向行的模式使用,这种模式输出许多行(不管实际的行的长度如何)。head 和 tail 默认都输出 10 行。与 cat 或 tac 一样,如果没有指定文件,head 和 tail 默认都读取 STDIN 的内容。顺便说一下,这些(以及其他许多)实用程序的 GNU 版本都具有比 BSD 版本更灵活的开关。
tail 实用程序还具有一种特殊模式(使用开关 -f 和 -F 来指定),它继续显示写到一个"followed(后续)"文件结尾的新行。大写字母开关用于监视文件的截取和重命名,小写字母开关用于监视简单的附加操作。Follow(后续)模式对于观察另一个进程可能对日志文件执行的定期更改特别有用。
od 和 hexdump
实用程序 od 和 hexdump 分别输出文件或流的八进制、十六进制或其他编码的字节。它们对于访问或可视地检查文件中不能直接显示在终端上的字符很有用。例如,cat 或 tail 不会直接区别制表符、空格或其他空白字符――您可以使用 hexdump 来检查究竟使用了哪些字符。根据系统的类型,这两个实用程序中的任一个或者两者都可用――BSD 系统认为 od 比 hexdump 更重要,而 GNU 则相反。然而,两个实用程序都具有完全相同的用途,只不过开关稍有不同。
与其他实用程序一样,od 和 hexdump 都可以从 STDIN 或从一个或多个指定的文件接受输入。此外,od 开关 -j 和 -N 分别允许跳过最初的字节和限制读取的字节数。您甚至可以使用类似 fprintf() 的格式修饰符来进一步定制这些标准开关的输出格式。
HERE 文档
有一种特殊的重定向值得在本教程中提一下。虽然严格地讲,HERE 文档是诸如 bash 这样的 shell 的特性,而不是与文本实用程序有关的任何东西,但是它们提供了向文本实用程序发送特殊数据的有用途径。
双小于号重定向可用于从终端接收伪文件的内容。HERE 文档必须紧跟在
|