Unix常用命令cat详解

[Unix常用命令cat]

这个命令可不是“猫”的意思,而是catenate的缩写。顾名思义,是把东西串起来。比如:cat file1 file2

就是把文件file1和file2连在一起,然后输出到屏幕上。注意,输出到屏幕上是cat的自定义目的。如果要改变它的输出方向,就必须使用Unix操作系统系统的输出重定向符">",">"输出重定向符。稍微高级一点的dos用户都知道这个符号。在Unix操作系统里的用法同Dos的区别不是很大。但比较不同的地方是,Unix操作系统系统将任何的一个外设都认同为一个文件。

所以如果你要将输出重定向到打印机之类的地方,只要写上代表打印机的设备文件名。前一章里我们曾讲过终端机器名,它也是一个文件。比方我的设备机器是ttya,而小李的设备机器是ttyb,他想让我把当前目录的内容给他看。那么用这条命令就可以了ls -a-u-F >ttyb。这充分利用了Unix操作系统系统多用户的设计思想。

同样的使用ls -a-u-F>file1就是将当前Unix操作系统目录列表输出到file1中。

又比如:cat file1 file2>file3
就是将文件file1和file2的内容输出到file3中。在Dos里这条命令被写成copy file1 file2 file3

当你用'>'来输出重定向的时候,Unix操作系统马上打开一个空文件来准备存放'>'之前那个文件命令的输出结果。比如:
cat file1 file2>file3

系统先将file3的内容清空。所以:cat file1 file2>file1这条命令将产生一个错误提示。也许这条命令的本意是增加file1里的内容,但在系统初始这条命令的时候就把file1里的内容清空了。所以你得到一个错误提示。如果要追加文件内容请使用以下命令:cat file2>>file1">>"表示追加,而不是先清空file1中的内容。

 

Unix常用命令cat命令格式参数

  命令:cat

  使用权限:所有使用者

  使用方式:cat [-AbeEnstTuv] [--help] [--version] fileName

  说明:把档案串连接后传到基本输出(萤幕或加 > fileName 到另一个档案)

  参数:

  -n 或 --number 由 1 开始对所有输出的行数编号

  -b 或 --number-nonblank 和 -n 相似,只不过对于空白行不编号

  -s 或 --squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行

  -v 或 --show-nonprinting

  范例:

  cat -n textfile1 > textfile2 把 textfile1 的档案内容加上行号后输入 textfile2 这个档案里

  cat -b textfile1 textfile2 >> textfile3 把 textfile1 和 textfile2 的档案内容加上行号(空白行不加)之后将内容附加到 textfile3

  了解更多与《生活小常识》相关的知识

上篇文章:《洗涤羊毛衫时应该注意
下篇文章:《洗涤羽绒服有四忌