使用方式: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 里。
范例:
把 textfile1 的档案内容加上行号后输入 textfile2 这个档案里
cat -n textfile1 > textfile2
把 textfile1 和 textfile2 的档案内容加上行号(空白行不加)之后将内容附加到 textfile3 里。
cat -b textfile1 textfile2 >> textfile3
cat /dev/null > /etc/test.txt 此为清空/etc/test.txt档案内容
cat 也可以用来制作 image file。例如要制作软碟的 image file,将软碟放好后打
cat /dev/fd0 > OUTFILE
相反的,如果想把 image file 写到软碟,请打
cat IMG_FILE > /dev/fd0
注:
1. OUTFILE 指输出的 image 档名。
2. IMG_FILE 指 image file。
3. 若从 image file 写回 device 时,device 容量需与相当。
4. 通常用在制作开机磁片。
Red Hat Linux 有一个工具程序,它能够帮助你保留简短列表,将这些列表收集起来,甚至向你透漏一点你的系统信息。
这个工具叫做 cat,它是 concatenate(连锁) 的简写,意思是合并文件。
cat 命令还会在屏幕上显示整个文件的内容(譬如,键入 cat filename.txt)。如果文件较长,它会在屏幕上飞快地滚过。要防止这一效果的发生,使用 cat filename.txt | less 命令。
一起使用管道(|)和 less 命令会一页一页地显示文件。然后,你便可以使用向上或向下的箭头键在页码中向前或向后移动。
重导向就是使 shell 改变它所认定的标准输出,或者改变标准输出的目标。
要重导向标准输出,使用 > 符号。把 > 符号放在 cat 命令之后(或在任何写入标准输出的工具程序和应用程序之后),会把它的输出重导向到跟在符号之后的文件中。
譬如,使用 cat 自身会在屏幕上输出你所输入的内容,如同是在重复你刚键入的行。下面的例子显示了 cat 会重复你输入的每一行:
图 13-5. cat 命令
要把 cat 的输出重导向到一个文件中,在 shell 提示下键入以下命令(按 [Enter] 键会把你带到一个空行):
cat > sneakers.txt |
把输出重导向到一个文件
按 [Enter] 键转到一个空行,然后使用 [Ctrl]-[D] 键 来退出 cat。
此处并没有重复显示。这是因为 cat 的标准输出已经被重导向了。重导向的地方是你刚刚制作的一个叫做 sneakers.txt 的崭新文件。
当你运行 cat 命令时,你会发现你所在目录中的文件(如果你想列举这些文件,键入 ls)。
如前所示,你可以使用 cat 来读取文件。在提示下,键入:
cat sneakers.txt |
在你把输出重导向入文件时,请谨慎从事,因为你会很容易地覆盖一个现存文件!除非你想代替该文件,请确保你所创建的文件名与已经存在的文件名不一样。
再把输出重导向到另一个文件,暂且把它叫做 home.txt。在这个例子中,键入命令 cat > home.txt,然后按 [Enter],其后跟随:
bring the coffee home
take off shoes
put on sneakers
make some coffee
relax!
|
现在,在一个空行上,使用 [Ctrl]-[D] 键组合来退出 cat。
下一步,使用 cat 把 home.txt 和 sneakers.txt 连接起来,然后再把两个文件的输出重导向到一个叫做 saturday.txt 的新文件(你会在图 13-7 中发现一个示例)。键入下面的命令:
cat sneakers.txt home.txt > saturday.txt |
连接文件和重导向输出
你可以看到 cat 已经把 home.txt 添加到 sneakers.txt 的结尾处。
你可以使用输出重导向来在一个现存文件之后添加新信息。这与你使用 > 符号相似,你是在告诉 shell 把信息发送到标准输出之外的某个地方。
然而,当你使用 >> 时,你是在给文件添加信息,而不是完全替换文件内容。
最好的解释方法是向你演示实例。我们便使用刚才已创建的两个文件(sneakers.txt 和 home.txt),然后使用后补输出的符号把它们连接起来。你想把 home.txt 的信息添加到 sneakers.txt 的信息中去,因此键入:
cat home.txt >> sneakers.txt |
现在,使用 cat sneakers.txt 的命令来检查一下。最终的输出在文件结尾处显示了 home.txt 的内容:
buy some sneakers then go to the coffee shop then buy some coffee bring the coffee home take off shoes put on sneakers make some coffee relax! |
你键入的命令把文件 home.txt 的输出后补到文件 sneakers.txt 中去。
通过后补输出,你利用了现存文件而不必创建新文件,从而为自己节省些时间(以及一些磁盘群集)。
现在比较一下文件 sneakers.txt 和文件 saturday.txt 的结果,你就会看到它们一模一样。要做比较,键入:
cat sneakers.txt; cat saturday.txt |
这两个文件的内容都会被显示 — 先是 sneakers.txt 文件,然后是 saturday.txt 文件
串联命令和比较文件
你不但可以重导向标准输出,还可以重导向标准输入。
当你使用重导向标准输入符号 < 时,你是在告诉 shell 你想使用某个文件作为命令的输入。
使用一个你已创建的文件来演示这一概念。键入:
cat < sneakers.txt |
因为你用来分隔 cat 命令和文件的是小于号(<),sneakers.txt 的输出就被 cat 命令读取。
重导向标准输入
linux cat命令使用方法详解--把档案串连接后传到基本输出
原文:http://www.cnblogs.com/wangyanhui-joel/p/5215480.html