一天一个Linux命令: cat

来源:互联网 发布:淘宝手绘素描造假 编辑:程序博客网 时间:2024/06/05 13:28

cat命令的用途是连接文件或标准输入并打印。这个命令常用来显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示,它常与重定向符号配合使用。

注意:当文件较大时,文本在屏幕上迅速闪过(滚屏),用户往往看不清所显示的内容。因此,一般用more等命令分屏显示。为了控制滚屏,可以按Ctrl+S键,停止滚屏;按Ctrl+Q键可以恢复滚屏。按Ctrl+C(中断)键可以终止该命令的执行,并且返回Shell提示符状态。

语法:
cat 选项 参数

选项
-n或-number: 有1开始对所有输出的行数编号;
-b或–number-nonblank: 和-n相似,只不过对于空白行不编号;
-s或–squeeze-blank: 当遇到有连续两行以上的空白行,就代换为一行的空白行;
-A: 显示不可打印字符,行尾显示“$”;
-e: 等价于”-vE”选项;
-t: 等价于”-vT”选项;

使用实例
实例一:把 log2012.log 的文件内容加上行号后输入 log2013.log 这个文件里
命令:
cat -n log2012.log log2013.log
输出:

[root@localhost test]# cat log2012.log 2012-012012-02======[root@localhost test]# cat log2013.log 2013-012013-022013-03======[root@localhost test]# cat -n log2012.log log2013.log         1  2012-01        2  2012-02        3        4        5  ======        6  2013-01        7  2013-02        8        9        10  2013-03        11  ======[root@localhost test]#

说明:

实例二:把 log2012.log 和 log2013.log 的文件内容加上行号(空白行不加)之后将内容附加到 log.log 里。
命令:
cat -b log2012.log log2013.log log.log
输出:

[root@localhost test]# cat -b log2012.log log2013.log log.log     1  2012-01     2  2012-02     3  ======     4  2013-01     5  2013-02     6  2013-03     7  ======[root@localhost test]#

实例三:把 log2012.log 的文件内容加上行号后输入 log.log 这个文件里
命令:
输出:

[root@localhost test]# cat log.log [root@localhost test]# cat -n log2012.log > log.log[root@localhost test]# cat -n log.log      1  2012-01     2  2012-02     3     4     5  ======[root@localhost test]#

实例四:使用here doc来生成文件
输出:

[root@localhost test]# cat >log.txt <<EOF> Hello> World> Linux> PWD=$(pwd)> EOF[root@localhost test]# ls -l log.txt -rw-r--r-- 1 root root 37 10-28 17:07 log.txt[root@localhost test]# cat log.txt HelloWorldLinuxPWD=/opt/soft/test[root@localhost test]#

说明:
注意粗体部分,here doc可以进行字符串替换。
备注:
tac (反向列示)
命令:
tac log.txt
输出:

[root@localhost test]# tac log.txt PWD=/opt/soft/testLinuxWorldHello

说明:
tac 是将 cat 反写过来,所以他的功能就跟 cat 相反, cat 是由第一行到最后一行连续显示在萤幕上,而 tac 则是由最后一行到第一行反向在萤幕上显示出来!

文章出处:
http://www.cnblogs.com/peida/archive/2012/10/30/2746968.html
http://man.linuxde.net/cat