cat命令详解

🏝️专栏:https://blog.csdn.net/2301_81831423/category_12872319.html

🌅主页:猫咪-9527-CSDN博客

"欲穷千里目,更上一层楼。会当凌绝顶,一览众山小。"


cat 是 Linux/Unix 中的一个非常常用的命令,主要用于 连接 文件并显示文件内容。它的名称来源于 concatenate(连接),不仅可以查看文件内容,还能将多个文件合并为一个文件,或用作其他数据流操作。

以下是对 cat 指令的详细讲解,包括其常见选项、功能和使用示例。


目录

基本语法

基本功能

常用选项详解

[1. 显示文件内容](#1. 显示文件内容)

[cat [文件名]](#cat [文件名])

[2. -n:显示行号](#2. -n:显示行号)

[3. -b:为非空行添加行号](#3. -b:为非空行添加行号)

[4. -s:压缩连续的空行](#4. -s:压缩连续的空行)

[5. -v:显示非打印字符](#5. -v:显示非打印字符)

[6. -T:将制表符显示为 ^I](#6. -T:将制表符显示为 ^I)

[7. -E:显示每行末尾的 $ 符号](#7. -E:显示每行末尾的 $ 符号)

高级用法

[1. 合并多个文件](#1. 合并多个文件)

[2. 文件内容追加](#2. 文件内容追加)

[3. 从标准输入创建文件](#3. 从标准输入创建文件)

[4. 查看文件内容分页](#4. 查看文件内容分页)

[5. 显示文件内容带行号](#5. 显示文件内容带行号)

[6. 调试文件](#6. 调试文件)

使用场景示例

[1. 显示文件内容](#1. 显示文件内容)

[2. 创建一个文件](#2. 创建一个文件)

[3. 将文件合并到一个新文件中](#3. 将文件合并到一个新文件中)

[4. 为每行添加行号显示](#4. 为每行添加行号显示)

[5. 压缩文件中的空行](#5. 压缩文件中的空行)

[6. 显示文件内容,观察不可见字符](#6. 显示文件内容,观察不可见字符)

注意事项

常用选项总结


基本语法

cat [选项] [文件...]
  • 文件 :指定一个或多个文件,如果省略文件参数,cat 会从标准输入(stdin)读取数据。
  • 选项 :用于增强或控制 cat 命令的输出。

基本功能

  1. 显示文件内容:直接输出指定文件的内容到终端。
  2. 合并文件:将多个文件的内容连接起来,并输出到终端或另存为一个新文件。
  3. 创建文件:通过重定向将输入内容保存到新文件中。
  4. 追加文件内容:将多个文件合并或将数据流追加到文件末尾。

常用选项详解

1. 显示文件内容

cat [文件名]

显示指定文件的内容。

cat file.txt

2. -n:显示行号

为每一行添加行号,空行也会编号。

cat -n file.txt

输出示例:

     1  Line 1
     2
     3  Line 2

3. -b:为非空行添加行号

-n 类似,但只为非空行编号。

cat -b file.txt

输出示例:

     1  Line 1
     
     2  Line 2

4. -s:压缩连续的空行

将多行连续的空行合并为一行。

cat -s file.txt

原文件内容:

Line 1


Line 2

输出:

Line 1

Line 2

5. -v:显示非打印字符

将文件中的不可见字符(如制表符、换行符等)显示为可见形式。

cat -v file.txt

输出示例:

  • 制表符:显示为 ^I
  • 行尾符号:显示为 $

6. -T :将制表符显示为 ^I

cat -T file.txt

7. -E :显示每行末尾的 $ 符号

cat -E file.txt

输出示例:

Line 1$
Line 2$

高级用法

1. 合并多个文件

将多个文件的内容合并后输出到终端,或重定向到一个新文件。

cat file1.txt file2.txt > merged.txt

2. 文件内容追加

将一个文件的内容追加到另一个文件末尾。

cat file1.txt >> file2.txt

3. 从标准输入创建文件

cat 可用来从终端输入内容,并保存到文件中(按 Ctrl+D 结束输入)。

cat > newfile.txt

示例操作:

This is the content.
It will be saved in the file.
# 按 Ctrl+D 结束

文件 newfile.txt 内容为:

This is the content.
It will be saved in the file.

4. 查看文件内容分页

如果文件内容过长而无法在一屏显示,可以结合 lessmore 命令:

cat file.txt | less
cat file.txt | more

5. 显示文件内容带行号

结合 nl 命令使用,nl 专门用来为文件添加行号。

cat file.txt | nl

6. 调试文件

如果需要查看文件中的不可见字符,可以使用 -v

cat -v file.txt

使用场景示例

1. 显示文件内容

cat file.txt

2. 创建一个文件

cat > newfile.txt

3. 将文件合并到一个新文件中

cat file1.txt file2.txt > merged.txt

4. 为每行添加行号显示

cat -n file.txt

5. 压缩文件中的空行

cat -s file.txt > no_blank_lines.txt

6. 显示文件内容,观察不可见字符

cat -v file.txt

注意事项

  1. 文件权限cat 读取文件时,需要对文件有读取权限,否则会报错:

    cat: file.txt: Permission denied
    
  2. 大文件处理 :对于特别大的文件,不建议使用 cat,因为它会一次性读取整个文件,可以使用 lesshead/tail 替代:

    less largefile.txt
    head -n 100 largefile.txt
    
  3. 覆盖与追加

    • 使用 > 会覆盖目标文件内容。
    • 使用 >> 会将内容追加到目标文件末尾。

通过熟练使用 cat 命令,可以轻松查看、编辑、合并和处理文件内容。

常用选项总结:

选项 含义
-n 为所有行编号
-b 为非空行编号
-A 显示不可见字符(等同于 -vET
-s 压缩连续的空白行为一行
-T 将制表符显示为 ^I
-E 在每行行尾显示 $

相关推荐
WeiZhihuicsdn3 分钟前
Linux源码包安装MySQL数据库
linux·数据库·mysql
不爱学英文的码字机器33 分钟前
[操作系统] 进程程序替换
linux·运维·服务器
酥暮沐1 小时前
LVS集群
linux·服务器·lvs
阿昊真人2 小时前
node 程序占用处理方法与后台运行方法
linux·编辑器·vim
Lllongroad5 小时前
SPI通信及设备驱动
linux·stm32·单片机
Dragon水魅6 小时前
Ubuntu22.04 配置deepseek知识库
linux·服务器·深度学习·ubuntu
96777 小时前
如何将 Jupyter Notebook (.ipynb) 文件转换为 Python (.py) 文件
linux·python·jupyter
forestqq10 小时前
openEuler22.03LTS系统升级docker至26.1.4以支持启用ip6tables功能
linux·运维·docker
蓝创精英团队12 小时前
基于Ubuntu Ollama 部署 DeepSeek-R132B 聊天大模型(附带流式接口调用示例)
linux·运维·ubuntu·deepseek
快去睡觉~14 小时前
Linux之Http协议分析以及cookie和session
linux·运维·http