目录
内容来源:
GUN : Coreutils - GNU core utilities
busybox v1.36.1 : 【busybox记录】【shell指令】基于的Busybox的版本和下载方式-CSDN博客
【GUN】【cat】指令介绍
cat:连接和写入文件
Cat将每个文件(`-`表示标准输入),或者如果没有给出标准输入,则将标准输入复制到标准输出。
简介:
cat [option] [file]...
该程序接受以下选项。参见第2章[常见选项],第2页。
‘-A’
‘--show-all’
等价于 -vET。
‘-b’
‘--number-nonblank’
从1开始为所有非空的输出行编号。
‘-e’ 等价于-vE。
‘-E’
‘--show-ends’
在每一行的末尾显示一个`$`。\r\n 组合显示为'^M$'。
‘-n’
‘--number’
从1开始为所有输出行编号。如果-b生效,则忽略此选项。
‘-s’
‘--squeeze-blank’
抑制重复的相邻空行;只输出一行空行,而不是多行。
‘-t’ 等价于-vT。
‘-T’
‘--show-tabs’
将制表符显示为'^I'。
‘-u’ 忽略;用于POSIX兼容性。
‘-v’
‘--show-nonprinting’
使用'^'表示法显示除LFD和TAB之外的控制字符,并在高位设置为'M-'的字符之前显示。
在MS-DOS这样区分文本和二进制文件的系统上,cat通常以二进制模式读写。但是,如果使用了选项-bensAE,或者cat从标准输入读取,而标准输入是终端,那么cat将以文本模式读取。
类似地,如果使用了选项-bensAE或标准输出是终端,cat将以文本模式写入。
退出状态为零表示成功,非零值表示失败。
例子:
#输出f的内容,然后是标准输入,然后是g的内容
$ cat f - g
#将标准输入复制到标准输出
$ cat
【busybox】【cat】指令介绍
BusyBox v1.36.1 (2024-04-16 11:16:28 EDT) multi-call binary.
Usage: cat [-nbvteA] [FILE]...
Print FILEs to stdout
-n 输出行数
-b 非空行行数
-v 将非打印字符显示为^x或M-x
-t ... tab是 ^I
-e ... 以$作为行尾
-A 与-vte相同
使用示例:
下述示例,基于本地编译出的busybox文件,所以增加了 ./ 前缀,表示当前路径下的指令
1、输出文件内容
指令:./cat file
本地新建两个文本文件 test1.txt 和test2.txt
如果对象是一个二进制文件,那么输出的就是一堆乱码
2、顺序输出多个文件的内容
指令:./cat test1.txt test2.txt
由于只有两个test文件也可以使用通配符
指令: ./cat test*
3、输出文件且显示行号
指令: ./cat -n test1.txt
修改下原始的test1.txt文件
4、输出文件且显示非空行的行号
指令: ./cat -b test1.txt
5、输出文件且把无法显示的字符显示为^x或M-x
指令: ./cat test1.txt -v
6、输出文件且显示特殊字符
指令: ./cat test1.txt -t
7、输出文件且每行的行尾显示$
指令: ./cat test1.txt -e
8、输出文件使用 -A选项 = -vet 选项
指令: ./cat test1.txt -A
常用组合指令
1、输出文件的前n行
指令: ./cat test1.txt | head -n 2
输出test1.txt文件的前两行
2、输出文件的末尾n行
指令: ./cat test1.txt | tail -n 3
输出test1.txt文件的后三行
3、输出指定路径下的以指定字符开头或结尾的所有文件
指令: ./cat test*
输出当前路径下所有的以test开头的文件
指令: ./cat *.txt
输出当前路径下所有的以.txt结尾的文件