简述
cat 命令连接文件并打印到标准输出设备上,经常用来显示整个文件的内容。cat 只能查看文本内容的文件,如查看二进制文件,则屏幕会显示乱码。另外,cat 还可以用来创建文件、合并文件等。
命令介绍
命令名称
cat
命令全称
Concatenate
基本语法
cat [选项]… [文件]…
功能描述
将 [文件] 或标准输入组合输出到标准输出
命令选项
选项
说明
-A, --show-all
等于 -vET
-b, --number-nonblank
对非空输出行编号
-e
等于 -vE
-E, --show-ends
在每行结束处显示 $
-n, --number
对输出的所有行编号
-s, --squeeze-blank
不输出多行空行
-t
与 -vT 等价
-T, --show-tabs
将 Tab 字符显示为 ^I
-u
(被忽略)
-v, --show-nonprinting
使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外
--help
显示帮助信息并退出
--version
显示版本信息并退出
注意:-d 和 -t 选项可接受不同的时间/日期格式。
使用范例
1.普通输出
[wang@localhost python]$ cat hello.py
#!/usr/bin/python
print("Hello World!")
2.对输出的所有行编号
若要显示所有行的编号,包括空白行,可以使用 -n 选项。
[wang@localhost python]$ cat -n hello.py
1 #!/usr/bin/python
2
3
4 print("Hello World!")
3.对非空输出行编号
若要对非空行进行编号,空行不编号,使用 -b 选项。
[wang@localhost python]$ cat -b hello.py
1 #!/usr/bin/python
2 print("Hello World!")
4.不输出多行空行
有时候文件中空行会很多,如果要将多个空行合并为一个,使用 -s 选项。
[wang@localhost python]$ cat -ns hello.py
1 #!/usr/bin/python
2
3 print("Hello World!")
5.在每行结束处显示 $
[wang@localhost python]$ cat -E hello.py
#!/usr/bin/python$
$
$
print("Hello World!")$
6.合并文件内容
将多个文件的内容进行追加合并,输出到另外一个文件中。
# hello.py 内容
[wang@localhost python]$ cat hello.py
#!/usr/bin/python
print("Hello World!")
# world.py 内容
[wang@localhost python]$ cat world.py
print("1024 is comming!")
[wang@localhost python]$ cat hello.py world.py >hello_world.py
# 合并后的内容
[wang@localhost python]$ cat hello_world.py
#!/usr/bin/python
print("Hello World!")
print("1024 is comming!")
[wang@localhost python]$
7.创建新文件
创建一个新文件,在创建的同时,可以添加内容。
[wang@localhost python]$ cat >hello.sh
#!/bin/bash
echo "Hello World!"
# 按 Ctrl-D结束
[wang@localhost python]$ cat hello.sh
#!/bin/bash
echo "Hello World!"
8.追加内容
[wang@localhost python]$ cat >>hello.sh
echo "1024 is coming!"
[wang@localhost python]$ cat hello.sh
#!/bin/bash
echo "Hello World!"
echo "1024 is coming!"
9.复制文件
使用 cat 还可以复制文件,包括文本文件、二进制文件或 ISO 光盘文件等。
[wang@localhost python]$ cat hello.sh >hello_bak.sh
[wang@localhost python]$ md5sum hello.sh hello_bak.sh
83dd4761f0e9c98568f57e4814454eb7 hello.sh
83dd4761f0e9c98568f57e4814454eb7 hello_bak.sh
可以看出两个文件的内容是一模一样的(md5 相同)。
10.清空文件内容
[wang@localhost python]$cat /dev/null >hello_bak.sh
[wang@localhost python]$cat hello_bak.sh
# 文件大小已变为 0
[wang@localhost python]$ls -l hello_bak.sh
-rw-rw-r--. 1 wang wang 0 10月 20 16:07 hello_bak.sh
cat 命令可以显示文件的内容,他反过来写就是 tac,tac 从文件的末尾开始读取,显示的结果和 cat 相反,详细用法就不再赘述了。