cat命令详解

devtools/2025/1/9 1:31:27/

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

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


基本语法

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

基本功能

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

常用选项详解

1. 显示文件内容

cat [文件名]

显示指定文件的内容。

cat file.txt

2. -n:显示行号

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

cat -n file.txt

输出示例:

     1  Line 123  Line 2

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

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

cat -b file.txt

输出示例:

     1  Line 12  Line 2

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

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

cat -s file.txt

原文件内容:

Line 1Line 2

输出:

Line 1Line 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 命令,可以轻松查看、编辑、合并和处理文件内容。在日常文件管理和开发中,cat 是一个非常实用的工具。

常用选项总结:

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


http://www.ppmy.cn/devtools/148548.html

相关文章

Android开发电子书合集(pdf)

Android开发、移动app设计等电子书 (使用手机保存资料可以获取1T免费网盘空间,电脑保存没有) 资源链接:https://pan.quark.cn/s/d10097856045

动漫推荐系统django+vue前台后台完整源码

完整源码项目包获取→点击文章末尾名片!

Linux(Ubuntu24.04)源码编译安装VTK7.1.1记录

VTK(Visualization Toolkit)是一个开源的3D可视化开发工具包,用于开发可视化和图形处理应用程序。VTK提供了一系列的算法和工具,用于创建、渲染和处理复杂的3D图形和数据。VTK由C编写,并提供了Python、Java和Tcl等语言…

OpenCV在现代社会中的应用

OpenCV(Open Source Computer Vision Library)是一个开源计算机视觉库,广泛应用于图像处理、计算机视觉以及机器学习领域。随着科技的发展,OpenCV在现代社会中扮演着越来越重要的角色,尤其在以下五个方向中取得了显著的…

java学习 单例模式

一.设计模式 1.1 概述 代表了最佳实践方式,通常被有经验的面向对象的软件开发工作人员采用 ​ 是众多有经验的开发人家,经过很长时间的使用和错误总结出来的,用来解决一系列特定问题 ​ 它不是语法规范,而且一套用来提高代码的复用性、可读性、可维护性、鲁棒性及安全性的解决…

使用Dinky快速提交Flink operator任务

官网地址:K8s集成 | Dinky 1.目前使用版本 Dinky1.2.0、Flink1.18.1、Flink operator0.10.0 2.制作镜像 2.1创建DockerFile ARG FLINK_VERSION1.18.1 FROM flink:${FLINK_VERSION}-scala_2.12 RUN mkdir -p /opt/flink/usrlib COPY commons-cli-1.3.1.jar …

使用 Flink CDC 构建 Streaming ETL

安装并配置 Flink 1.下载 Flink 1.20.0 curl -k -O https://archive.apache.org/dist/flink/flink-1.20.0/flink-1.20.0-bin-scala_2.12.tgz 2.解压文件 tar -xzvf flink-1.20.0-bin-scala_2.12.tgz 3.移动到目标目录(可选) 将解压后的 Flink 目录移动到…

算命网站源码PHP框架_附2025新版设计书教程

算命网站源码PHP设计书 1. 项目概述 1.1 项目背景 随着互联网的发展,越来越多的人对命理和占卜产生了兴趣。算命网站可以为用户提供个性化的命理分析、运势预测等服务。本项目旨在设计一个基于PHP的算命网站,方便用户在线获取命理服务。 1.2 项目目标…