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 在每行行尾显示 $

相关推荐
郝亚军3 小时前
ubuntu-18.04.6-desktop-amd64安装步骤
linux·运维·ubuntu
Konwledging3 小时前
kernel-devel_kernel-headers_libmodules
linux
Web极客码3 小时前
CentOS 7.x如何快速升级到CentOS 7.9
linux·运维·centos
一位赵4 小时前
小练2 选择题
linux·运维·windows
代码游侠4 小时前
学习笔记——Linux字符设备驱动开发
linux·arm开发·驱动开发·单片机·嵌入式硬件·学习·算法
Lw老王要学习5 小时前
CentOS 7.9达梦数据库安装全流程解析
linux·运维·数据库·centos·达梦
CRUD酱5 小时前
CentOS的yum仓库失效问题解决(换镜像源)
linux·运维·服务器·centos
zly35005 小时前
VMware vCenter Converter Standalone 转换Linux系统,出现两个磁盘的处理
linux·运维·服务器
Albert Edison6 小时前
【Python】函数
java·linux·python·pip
General_G6 小时前
Linux中的信号
linux·运维·服务器