[TOC] >[success] # cat 查看纯文本文件 ~~~ 1.当只是查看和简单操作文件时候不想使用'vi/vim' 这种比较重的文本编辑器,可以使用'cat' 指令 'cat' -- concatenate 连接多个文件并打印到标准输出。简单理解就是将文本信息打印到控制台 用法'cat [选项] 文件' 也是可以加多个文件'cat [选项] 文件1 文件2' ~~~ >[info] ## 可选参数 **\-b** :列出行号,仅针对非空白行做行号显示,空白行不标行号! **\-E** :将结尾的断行字节 $ 显示出来; **\-n** :列出行号,连同空白行也会有行号,与 \-b 的选项不同; **\-T** :将 \[tab\] 按键以 ^I 显示出来; **\-v** :列出一些看不出来的特殊字符; **\-A** :相当于 \-vET 的整合选项,可列出一些特殊字符而不是空白而已 >[danger] ##### 查看文本内容 ~~~ 1.'cat 文件1 文件2' 举个例子查看一个文本内容 'cat aa.txt' 将多个文本内容一起输出到控制台'cat aa.txt bb.txt' ~~~ >[danger] ##### 只对有内容的行加行号 -- -b ~~~ 1.'cat -b 文件' -- 对非空行显示行号 ~~~ * 如图 ![](https://img.kancloud.cn/b5/f2/b5f222dcb769efbd458e25da61a3f039_359x137.png) >[danger] ##### 每行加行号 -- -n ~~~ 1.'cat -n 文件' -- 对每行加行号 ~~~ * 如图 ![](https://img.kancloud.cn/ab/74/ab74ec1aee6aaa64eed203df066ecf33_325x141.png) >[danger] ##### 在每行结尾加上$符 -- E ~~~ 1.'cat -E 文件' -- 在每行结尾加上$符 ~~~ >[danger] ##### 当多空行只显示一个 -- s ~~~ 1.'cat -s 文件' -- 参数把多个空行,换成一个,可以让文件更精炼阅读 ~~~ >[danger] ##### 合并多个文件 -- 类似复制文件 ~~~ 1.下面这命令使用起来可以达到复制文件的作用也就是'cp'的效果,但是和'cp' 对比不局限一个文件 'cp 文件1 文件2 > 新文件' -- 举个例子'cat aa.txt bb.txt > cc.txt' 将'aa.txt bb.txt' 的内容放到一起写入'cc.txt' 文件中,如果'cc.txt'存在 就将其里面内容全部覆盖,不存在则新建一个'cc.txt' 并将文件内容写入 ~~~ >[danger] ##### 清空文件内容 ~~~ 1.'echo > aa.txt' 这种清除文件内容会留下了一个空行 2.'> aa.txt'直接清空文件內容,不留空行 3.'cat /dev/nu11 > 清空的文件.txt' 将黑洞文件写入要清空的文件 ~~~ >[danger] ##### 非交互式写入 ~~~ 1.交互式写入就是通过'vi/vim' 这种通过命令交互正常写入内容,相对的也可以用重定向配合cat 指令 做到写入文件 cat >> aa.txt <<EoF >bbb >aaa >EOF 2.或者也可以 'cat >> aa.txt' 接着就可以输入文字 ~~~ >[danger] 说明 重定向使用参考重定向章节 >[danger] ##### tac ~~~ 1.tac 与 cat 命令作用相反,反向读取文件内容 ~~~ >[danger] ##### 配合管道符 -- | ~~~ 1.如图'|' -- 管道符用法,将第一条指令的结果作为第二条的条件依次类推,举个例子想 找到都段文字中的某些字符串,简单的说管道符左边命令的输出会作为管道符右边命令的输入这里需要知道另外一个命令'grep' 过滤举个例子'cat a.txt | grep 666 '将 a.txt 文本输出 内容 作为'grep'输入查找的内容找到 666 ~~~ ![](https://img.kancloud.cn/73/7b/737b0dfcf39e66112b2be8915520ccf5_700x173.png)