tongsiying

阅读|运动|自律

0%

cat

前言

cat是Linux系统下用来查看文件连续内容用的指令,字面上的含意是“concatenate”(连续)的缩写。除了用来作为显示文件内容外,cat指令也可用于标准流上的处理,如将显示的信息转入或附加另一文件上。

1. 命令格式

1
cat [选项] [文件]...

2. 命令功能

1
2
3
4
cat主要有三大功能:
1、一次显示整个文件:cat filename;
2、从键盘创建一个文件:cat > filename 只能创建新文件,不能编辑已有文件;
3、将几个文件合并为一个文件:cat file1 file2 > file;

3. 命令参数

1
2
3
4
-n 或 --number 对输出的所有行编号,由1开始对所有输出的行数编号
-b 或 --number-nonblank 和 -n 相似,只不过对于空白行不编号
-s 或 --squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行
-v 或 --show-nonprinting 使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外

4.范例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
实例一:把linuxeye.css的文件内容加上行号后输入linux.css这个文件里
cat -n linuxeye.css > linux.css

实例二:把file1.txt和file2.txt的档案内容加上行号(空白行不加)之后将内容附加到file3.txt里。
cat -b file1.txt file2.txt > file3.txt

实例三:cat和EOF
EOF是“end of file”,表示文本结束符。
结合这两个标识,即可避免使用多行echo命令的方式,并实现多行输出的结果。
# cat > linuxeye.txt << EOF
> Hello
> www.linuxeye.com
> Linuxeye
> EOF

# ls -l linuxeye.txt
-rw-r--r-- 1 root root 32 Jun 5 18:43 linuxeye.txt
# cat linuxeye.txt
Hello
www.linuxeye.com
Linuxeye

5.tac (反向行显示 )

1
2
3
4
5
6
7
8
# echo -e "1111\n22222\n345678" > tac.txt
# tac tac.txt
345678
22222
1111
tac 是将 cat 反写过来,所以他的功能就跟 cat 相反;
cat 是由第一行到最后一行连续显示在萤幕上;
tac 则是由最后一行到第一行反向在萤幕上显示出来!

6.突破

​ 将文件内容导入到内存中,以便需要使用文件内容时能够快速获取。一般来说,从硬盘中读取数据需要5ms到10ms的时间,而从内存中读取数据时通常只需要50ns到100ns的时间,这就是page cache(页高速缓冲存储器)的作用。

1
cat some_data.txt > /dev/null

总结
这个经历给我的体会是,许多时候,我们认为自己掌握了全部或绝大部分,而实际上,只是因为自己知道的太少,并且不认为自己知道的太少——我们压根不觉得是因为自己不知道。就像美国前国防部长拉姆斯菲尔德说过的那样:
because as we know, there are known knowns; there are things we know we know. We also know there are known unknowns; that is to say we know there are some things we do not know. But there are also unknown unknowns - the ones we don’t know we don’t know.
我们有已知的已知,已知的未知,以及未知的未知。

7.其它读文件:

1
2
3
4
5
6
7
cat     #由第一行开始显示内容,并将所有内容输出
tac     #从最后一行倒序显示内容,并将所有内容输出
more    #根据窗口大小,一页一页的显示文件内容
less    #和more类似,但其优点可以往前翻页,而且进行可以搜索字符
head    #只显示头几行
tail    #只显示最后几行
nl     #类似于cat -n,显示时输出行号

引用:
https://blog.csdn.net/signjing/article/details/79437385

赞赏一下吧~