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. 查看文件内容分页

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

复制代码
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,因为它会一次性读取整个文件,可以使用 less 或 head/tail 替代:

    复制代码
    less largefile.txt
    head -n 100 largefile.txt
  3. 覆盖与追加:

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

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

常用选项总结:

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

相关推荐
Android系统攻城狮7 分钟前
Linux FFmpeg深度解析之avcodec_find_decoder调用流程与实战(十二)
linux·运维·服务器·ffmpeg·1024程序员节·音视频进阶
小白的码BUG之路16 分钟前
K8s -- 启动一主二从节点
linux·运维·服务器
Escalating_xu23 分钟前
【Linux 网络编程】IP 分片与重组:3000 字节的数据报,怎样拆开又拼回来?
linux·网络·tcp/ip
小相会自律29 分钟前
全平台远程控制软件推荐2026:Win/Mac/Linux/手机/鸿蒙互通哪款好
linux·macos·智能手机·todesk·teamviewer·向日葵
风娜35 分钟前
【Linux网络】UDP 服务器怎么写?从 socket、bind 到 recvfrom/sendto,手写完整回显服务器
linux·服务器·网络
静以修身zzz42 分钟前
OpenStack对象存储-Swift、OpenStack编排管理-heat、OpenStack网络管理-neutron
linux·运维·服务器·架构·openstack·swift
一技安身1 小时前
MySQL 8.4.13 LTS 通用二进制包(Linux免安装版)完整教程
linux·mysql·adb
迷途之人不知返1 小时前
【动态库与静态库】-3-静态链接与加载
linux
谙弆悕博士2 小时前
debian快速换源
linux·运维·windows·debian·下载·换源·网络问题
.道阻且长.2 小时前
Linux基本开发工具:编译器gcc/g++
linux·运维·服务器·职场和发展