cat命令详解

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

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


基本语法

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

常用选项总结:

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/949332.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Linux】Linux命令

目录 ​编辑 系统维护命令 man man:查看 man 手册 sudo passwd 用户名:修改用户密码 su:切换用户 echo ”输出内容“:向终端输出内容,默认换行 date查看当前系统的日期 clear:清屏 df -Th /df -h&…

优化算法---遗传算法

目录 一、基本定义1.1 遗传与变异1.2 进化 二、算法简介2.1 基本原理2.2 算法步骤2.3 算法案例2.3.1 最大值求解2.3.2 旅行商问题求解 2.4 算法优缺点 优化算法—模拟退火算法 优化算法—遗传算法 一、基本定义 遗传算法(Genetic Algorithm,GA)是模仿自然界生物进化机制发展起来…

匠人天工Ai浮雕网站创新发布了ZBrush插件,提效500%,为AI+数字雕刻行业带来新的活力

2025年1月6日,杭州——杭州仓颉造梦数字科技公司旗下产品匠人天工近日宣布推出一款创新的ZBrush插件,旨在为AI数字雕刻行业带来前所未有的效率提升。该插件通过一系列智能化功能,大幅简化了数字雕刻的建模流程,使建模效率提高了50…

NV256H语音提示芯片助力自动洗车机更加智能化!

汽车保养是每位车主日常生活中不可或缺的一部分,而洗车作为保养的基本环节,其便捷性和智能化程度正逐渐成为消费者选择的重要考量。在这样的背景下,全自动洗车机应运而生,并被广泛应用于汽车美容行业。 因为是全自动洗车模式&…

NLP CH3复习

CH3 3.1 几种损失函数 3.2 激活函数性质 3.3 哪几种激活函数会发生梯度消失 3.4 为什么会梯度消失 3.5 如何解决梯度消失和过拟合 3.6 梯度下降的区别 3.6.1 梯度下降(GD) 全批量:在每次迭代中使用全部数据来计算损失函数的梯度。计算成本…

关于蔬菜商品的预测定价计算【数值计算课设】

源码+报告 下载链接在文章末尾。 文章目录 源码+报告蔬菜类商品的自动定价与补货决策1 引 言2 题目描述3 问题解决3.1 模型的建立与求解3.2 算法3.2.1 非线性算法3.2.2 ARMA算法3.2.3 粒子群算法4 结论参考文献下载链接蔬菜类商品的自动定价与补货决策 [摘 要] 蔬菜商品的补货…

adb使用及常用命令

目录 介绍 组成 启用adb调试 常用命令 连接设备 版本信息 安装应用 卸载应用 文件操作 日志查看 屏幕截图和录制 设备重启 端口转发 调试相关 设置属性 设备信息查询 获取帮助 模拟输入 介绍 adb全称为 Android Debug Bridge(Android调试桥),是 A…

y7000p2023AX211ubuntu20无线网卡驱动

网卡检测 查看无线网卡驱动,本教程适用的网卡为Intel Corporation Device[8086:51f1],即AX211 lspci -nn | grep Net这里的Ethernet controller是有线网卡,Network controller是无线网卡,Intel corporation Device指英伟达网卡对应的设备号是[8086:51f1]…

链表OJ题(一)

(一)轮转数组 . - 力扣(LeetCode) 题目描述:给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。 示例一: 方法一:暴力求解 先用一个变量存储数组中的最后…

Python如何精准定位并修改MP4文件的mvhd原子

深入了解MP4文件的结构对于安全地修改元数据非常重要。MP4文件采用基于原子(atom)的结构组织数据,每个原子代表一种特定的信息或数据块。例如,moov原子包含了视频的元数据信息,mvhd原子包含了视频的头信息,…

[SMARTFORMS] 系统变量的使用

在PAGE1页面节点下创建WINDOW5窗口 填写WINDOW5窗口描述以及位置,大小等相关信息 在WINDOW5窗口节点下新建TEMPLATE模板 为TEMPLATE模板设置行列相关信息 在TEMPLATE模板节点下面新增3个TEXT文本 每个TEXT文本的内容如下所示: %TEXT25 打印日期文本内容 …

C盘清理方法大全

目录 方法1:系统磁盘清理 方法2:找到存储删除 方法3:使用第三方软件Dism 方法4:关闭虚拟内存功能 方法5:磁盘分区扩展 方法1:系统磁盘清理 第一步:「此电脑 」- 「本地磁盘C」&#xff0c…

计算机的错误计算(二百零三)

摘要 利用两个大模型化简计算 其中一个大模型是数学解题器,它通过化简得出了正确结果;另外一个大模型给出了 Python代码。 例1. 化简计算摘要中算式。 下面是一个数学解题器大模型给的回答。 以上是数学解题器大模型给的回答。 下面是与另外一个大模型…

【JVM】总结篇之GC日志分析 和 案例

文章目录 GC日志参数GC日志格式GC日志分类MinorGCFullGC 文件概念 OOMOOM案例1:堆溢出OOM案例2:元空间溢出OOM案例3:GC overhead limit exceededOOM案例4:线程溢出 GC日志参数 GC日志格式 GC日志分类 MinorGC MinorGC(或young …

ASP.NET Core 中服务生命周期详解:Scoped、Transient 和 Singleton 的业务场景分析

前言 在 ASP.NET Core 中,服务的生命周期直接影响应用的性能和行为。通过依赖注入容器 (Dependency Injection, DI),我们可以为服务定义其生命周期:Scoped、Transient 和 Singleton。本文将详细阐述这些生命周期的区别及其在实际业务中的应用…

Redis中字符串和列表的区别

在 Redis 中,字符串(String)和列表(List)是两种截然不同的数据类型,它们各自有着独特的特点和适用场景。 数据结构 • 字符串(String): • 在 Redis 中,字符串…

正则表达式{}和(),pyhton里的正则表达式,函数findall解析

前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 正则…

Angular由一个bug说起之十三:Cross Origin

跨域 想要了解跨域,首要要了解源 什么是源,源等于协议加域名加端口号 只有这三个都相同,才是同源,反之则是非同源。 比如下面这四个里,只有第4个是同源 而浏览器给服务器发送请求时,他们的源一样&#xff0…

x86霸权难动摇!

快科技1月6日消息,根据市场研究机构ABI Research的最新报告,尽管2025年被视为Arm PC市场扩张的关键一年,但搭载Arm架构处理器的PC预计仅占PC总出货量的13%。 ABI Research的分析师指出,尽管高通最新的PC处理器在性能和AI功能上有…

STM32的LED点亮教程:使用HAL库与Proteus仿真

学习目标:掌握使用STM32 HAL库点亮LED灯,并通过Proteus进行仿真验证! 建立HAL库标准工程 1.新建工程文件夹 新建工程文件夹建议路径尽量为中文。建立文件夹的目的为了更好分类去管理项目工程中需要的各类工程文件。 首先需要在某个位置建立工…