一、说明
这三个命令都可以链接文件并将内容打印在标准输出上。
- cat 命令是从文件的第一行扫描到最后一行;
- tac 命令是从文件的最后一行扫描到第一行,它就是 cat 倒过来写的;
- rev 命令是 reverse 的缩写,也是从文件的第一行扫描到最后一行,不过每行都是反转输出的。
二、语法格式
1. cat [-AbeEnstTuv] [--help] [--version] [File…]
参数说明:
- -n 或 --number:由 1 开始对所有输出的行数编号
- -b 或 --number-nonblank:和 -n 相似,只不过对于空白行不编号
- -s 或 --squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行
- -v 或 --show-nonprinting:使用 ^ 和 M- 符号,除了 LFD 和 TAB 之外
- -E 或 --show-ends:在每行结束处显示 $
- -T 或 --show-tabs:将 TAB 字符显示为 ^I
- -e:等价于 -vE
- -A 或 --show-all:等价于 -vET
- -e:等价于”-vE”选项
- -t:等价于”-vT”选项
- --help:显示此帮助信息并退出
- --version:显示版本信息并退出
2. tac [-brs] [--help] [--version] [File…]
参数说明:
- -b 或 --before:在行前而非行尾添加分隔标志
- -r 或 --regex:将分隔标志视作正则表达式来解析
- -s 或 --separator=字符串:使用指定字符串代替换行作为分隔标志
- --help:显示此帮助信息并退出
- --version:显示版本信息并退出
3. rev [-hV] [--help] [--version] [File…]
参数说明:
- -h 或 --help:显示此帮助信息并退出
- -V 或 --version:显示此版本信息并退出
三、示例
假设文件夹下有这样一个文本文件 test.txt,其内容为:
afei
test
执行各命令,输出如下:
➜ cat test.txt
afei
test
➜ tac test.txt
test
afei
➜ rev test.txt
iefa
tset
四、扩展
1. 使用 > 和 >> 可以将标准输出内容重定向到指定文件
其中 > 是覆盖到目标文件,>> 是追加到目标文件。
例如将 test.txt 文档内容加上行号后输出到 test2.txt 文件中:
cat -n test.txt > test2.txt
2. 清空文件内容
/dev/null 是一个空文件,利用它可以实现清空效果
cat /dev/null > test.txt