cat命令使用

cat:concatenate files and print on the standard output合并文件并输出  

  • 主要用法
1、cat f1.txt,查看f1.txt文件的内容。
2、cat -n f1.txt,查看f1.txt文件的内容,并且由1开始对所有输出行进行编号。
3、cat -b f1.txt,查看f1.txt文件的内容,用法与-n相似,只不过对于空白行不编号。
4、cat -s f1.txt,当遇到有连续两行或两行以上的空白行,就代换为一行的空白行。
5、cat -e f1.txt,在输出内容的每一行后面加一个$符号。
6、cat f1.txt f2.txt,同时显示f1.txt和f2.txt文件内容,注意文件名之间以空格分隔,而不是逗号。
7、cat -n f1.txt>f2.txt,对f1.txt文件中每一行加上行号后然后写入到f2.txt中,会覆盖原来的内容,文件不存在则创建它。
8、cat>f1.txt<<A,新增f1.txt文件的内容,会覆盖原来的内容,文件不存在则创建它。以行为单位输入文件内容,当输入A字符时结束输入
9、cat>>f1.txt<<A,添加f1.txt文件的内容,不会覆盖原来的内容,文件不存在则创建它。以行为单位输入文件内容,当输入A字符时结束输入。
 
B:创建文件以及写入文件内容的用法:
注意:创建文件的时候要设置文件结束标志,也就是<<EOF,可以把EOF换成别的字符,注意是大小写敏感的,当文件内容写完之后要输入结束标志EOF,这时命令会正确结束,表示成功创建文件并且写进内容。
 
 
 C:追加文件内容的用法:
注意:与创建文件内容不同的是符号单边号>变成了双边号>>。
 
D:文件合并的用法
把文件f2.txt,f3.txt,f4.txt的文件内容写入到f1.txt中,如果f1.txt文件以前有内容,则先会清除它们然后再写入合并后的内容。
如果不想清除文件内容,则可以把单边号>变成了双边号>>,如下图所示:
 

实例一:把 log2012.log 的文件内容加上行号后输入 log2013.log 这个文件里

命令:

cat -n log2012.log log2013.log 

输出:

[root@localhost test]# cat log2012.log 

2012-01

2012-02

 

 

======[root@localhost test]# cat log2013.log 

2013-01

2013-02

 

 

2013-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 

Hello

World

Linux

PWD=/opt/soft/test

[root@localhost test]#

 

说明:

注意粗体部分,here doc可以进行字符串替换。

 

备注:

tac (反向列示)

命令:

tac log.txt

输出:

[root@localhost test]# tac log.txt 

PWD=/opt/soft/test

Linux

World

Hello

 
posted @ 2016-04-12 15:04  倔强的企鹅  阅读(1322)  评论(0编辑  收藏  举报