cat - concatenate files and print on the standard output
--把文件连接后输出到屏幕上,其实就是查看文件内容。
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/dot.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
练习:
[root@CentOS4 ok_008]# cat mytest
Hello world!
Hello world 1
Hello world 2
hello world 3
[root@CentOS4 ok_008]# cat -n mytest
1 Hello world!
2
3
4 Hello world 1
5 Hello world 2
6
7
8 hello world 3
[root@CentOS4 ok_008]# cat -b mytest
1 Hello world!
2 Hello world 1
3 Hello world 2
4 hello world 3
从以上命令我们可以验证 -n与 -b的差异。
[root@CentOS4 ok_008]# cat -b -E mytest
1 Hello world!$
$
$
2 Hello world 1$
3 Hello world 2$
$
$
4 hello world 3$
每行以$符号为行结尾
现在想合并mytest和oktest两个文件的内容成一个新的文件NewTest.txt
[root@CentOS4 ok_008]# ls -l
total 24
-rw-r--r-- 1 root root 59 Sep 18 19:48 mytest
drwxr-xr-x 3 root root 4096 Sep 13 22:51 ok
-rw-r--r-- 1 root root 21 Sep 17 20:45 oktest
[root@CentOS4 ok_008]# cat mytest oktest >> newtest.txt
[root@CentOS4 ok_008]# ls -l
total 32
-rw-r--r-- 1 root root 59 Sep 18 19:48 mytest
-rw-r--r-- 1 root root 80 Sep 18 19:53 newtest.txt
drwxr-xr-x 3 root root 4096 Sep 13 22:51 ok
-rw-r--r-- 1 root root 21 Sep 17 20:45 oktest
查看新的文件newtest.txt的内容:
[root@CentOS4 ok_008]# cat -b newtest.txt
1 Hello world!
2 Hello world 1
3 Hello world 2
4 hello world 3
5 this is a test file.
合并两个文件的内容
[root@CentOS4 ok_008]# cat mytest oktest > newtest1.txt
[root@CentOS4 ok_008]# ls -l
total 40
-rw-r--r-- 1 root root 59 Sep 18 19:48 mytest
-rw-r--r-- 1 root root 80 Sep 18 19:56 newtest1.txt
-rw-r--r-- 1 root root 80 Sep 18 19:53 newtest.txt
drwxr-xr-x 3 root root 4096 Sep 13 22:51 ok
-rw-r--r-- 1 root root 21 Sep 17 20:45 oktest
[root@CentOS4 ok_008]# cat -b newtest1.txt
1 Hello world!
2 Hello world 1
3 Hello world 2
4 hello world 3
5 this is a test file.
我们仔细会发现cat mytest oktest > newtest1.txt 和 cat mytest oktest >> newtest.txt 返回的结果在这里相同。
其实根据《Linux常用命令全集》的例子:
cat -n textfile1 > textfile2 把 textfile1 的档案内容加上行号后输入 textfile2 这个档案里
cat -b textfile1 textfile2 >> textfile3 把 textfile1 和 textfile2 的档案内容加上行号(空白行不加)之后将内容附
可以看出两个命令的差异,这里就不多写例子。
清空某个文件的内容:
[root@CentOS4 ok_008]# cat /dev/null > mytest
[root@CentOS4 ok_008]# cat -b mytest
[root@CentOS4 ok_008]# ls -l
total 52
-rw-r--r-- 1 root root 0 Sep 18 20:05 mytest
-rw-r--r-- 1 root root 80 Sep 18 19:56 newtest1.txt
-rw-r--r-- 1 root root 93 Sep 18 20:01 newtest3.txt
-rw-r--r-- 1 root root 93 Sep 18 20:01 newtest4.txt
-rw-r--r-- 1 root root 80 Sep 18 19:53 newtest.txt
drwxr-xr-x 3 root root 4096 Sep 13 22:51 ok
-rw-r--r-- 1 root root 34 Sep 18 20:00 oktest
--明天找一下资料为什么要使用cat /dev/null > mytest能清空文件内容。
创建一个新的文件:
[root@CentOS4 ok_008]# cat >new.txt --按 CTRL + C 结束录入
[root@CentOS4 ok_008]# ls -l
total 56
-rw-r--r-- 1 root root 0 Sep 18 20:05 mytest
-rw-r--r-- 1 root root 80 Sep 18 19:56 newtest1.txt
-rw-r--r-- 1 root root 93 Sep 18 20:01 newtest3.txt
-rw-r--r-- 1 root root 93 Sep 18 20:01 newtest4.txt
-rw-r--r-- 1 root root 80 Sep 18 19:53 newtest.txt
-rw-r--r-- 1 root root 0 Sep 18 20:07 new.txt
drwxr-xr-x 3 root root 4096 Sep 13 22:51 ok
-rw-r--r-- 1 root root 34 Sep 18 20:00 oktest
温习以前的rm命令把一些刚才临时建立的文件(如newtest1.txt,newtest3.txt,newtest4.txt,newtest.txt,new.txt)删除掉:
[root@CentOS4 ok_008]# rm newtest1.txt newttest3.txt newtest4.txt newtest.txt
rm: remove regular file `newtest1.txt'? y
rm: cannot lstat `newttest3.txt': No such file or directory
rm: remove regular file `newtest4.txt'? y
rm: remove regular file `newtest.txt'? y
[root@CentOS4 ok_008]# rm newtest3.txt
rm: remove regular file `newtest3.txt'? y
[root@CentOS4 ok_008]# ls -l
total 24
-rw-r--r-- 1 root root 0 Sep 18 20:05 mytest
-rw-r--r-- 1 root root 0 Sep 18 20:07 new.txt
drwxr-xr-x 3 root root 4096 Sep 13 22:51 ok
-rw-r--r-- 1 root root 34 Sep 18 20:00 oktest
[root@CentOS4 ok_008]# rm newt.txt
rm: cannot lstat `newt.txt': No such file or directory
[root@CentOS4 ok_008]# rm new.txt
rm: remove regular empty file `new.txt'? y
[root@CentOS4 ok_008]# ls -l
total 20
-rw-r--r-- 1 root root 0 Sep 18 20:05 mytest
drwxr-xr-x 3 root root 4096 Sep 13 22:51 ok
-rw-r--r-- 1 root root 34 Sep 18 20:00 oktest
今天就学到这里,休息一下,听完一首《Lonely》冲凉去,呵呵。