当前位置: 首页 > news >正文

cat命令详解

🏝️专栏:https://blog.csdn.net/2301_81831423/category_12872319.html
🌅主页:猫咪-9527-CSDN博客

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


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

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


目录

基本语法

基本功能

常用选项详解

1. 显示文件内容

cat [文件名]

2. -n:显示行号

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

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

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

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

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

高级用法

1. 合并多个文件

2. 文件内容追加

3. 从标准输入创建文件

4. 查看文件内容分页

5. 显示文件内容带行号

6. 调试文件

使用场景示例

1. 显示文件内容

2. 创建一个文件

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

4. 为每行添加行号显示

5. 压缩文件中的空行

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

注意事项

常用选项总结


基本语法

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 命令,可以轻松查看、编辑、合并和处理文件内容。

常用选项总结:

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

相关文章:

cat命令详解

🏝️专栏:https://blog.csdn.net/2301_81831423/category_12872319.html 🌅主页:猫咪-9527-CSDN博客 “欲穷千里目,更上一层楼。会当凌绝顶,一览众山小。” cat 是 Linux/Unix 中的一个非常常用的命令&…...

el-table 自定义表头颜色

第一种方法&#xff1a;计算属性 <template><div><el-table:data"formData.detail"border stripehighlight-current-row:cell-style"{ text-align: center }":header-cell-style"headerCellStyle"><el-table-column fixed…...

window.print()预览时表格显示不全

问题描述&#xff1a;使用element的table组件&#xff0c;表格列宽为自适应&#xff0c;但使用window.print()方法预览的页面会直接按预览宽度截取表格内容进行展示&#xff0c;造成表格可能的显示不全问题 解决方法&#xff1a;添加如下样式 media print {::v-deep {// 表头…...

React Router底层核心原理详解

React Router 是一个功能强大的路由库&#xff0c;它允许开发者在 React 单页面应用&#xff08;SPA&#xff09;中实现客户端路由管理。React Router 通过匹配 URL 和组件的关系来实现页面的导航&#xff0c;它不仅提供了简单的 API&#xff0c;还在底层实现了复杂的 URL 匹配…...

linux MySQL 实时性能监控工具

在 Linux 上&#xff0c;有多个工具可以用于 实时监控 MySQL 的性能。根据你的需求&#xff0c;以下是常用的 MySQL 实时性能监控工具&#xff0c;包括轻量级的命令行工具和可视化监控工具。 &#x1f527; 1. MySQLTuner – 一键性能优化建议 ✅ 特点 快速分析 MySQL 的性能…...

ModuleNotFoundError: No module named ‘setuptools_rust‘ 解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…...

基于Spring Boot的海滨体育馆管理系统的设计与实现

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的海滨体育馆管理系统的设计与实现。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 项目简介&#xff1a; 宠物医院…...

【机器视觉】OpenCV 图像轮廓(查找/绘制轮廓、轮廓面积/周长、多边形逼近与凸包、外接矩形)

文章目录 7. 图像轮廓7.1 什么是图像轮廓7.2 查找轮廓7.3 绘制轮廓7.4 轮廓的面积和周长7.5 多边形逼近与凸包7.6 外接矩形 OpenCV官网 7. 图像轮廓 7.1 什么是图像轮廓 图像轮廓是具有相同颜色或灰度的连续点的曲线. 轮廓在形状分析和物体的检测和识别中很有用。 轮廓的作用…...

深入浅出:React 前端框架解析与应用

引言 随着前端开发技术的不断发展&#xff0c;现代化的前端框架成为了提升开发效率、优化用户体验和构建复杂应用的关键工具。在众多的前端框架中&#xff0c;React凭借其简洁、高效、可扩展的特点&#xff0c;已成为目前最流行的前端框架之一。它由Facebook于2013年发布&…...

【网络安全设备系列】7、流量监控设备

0x00 定义: 网络流量控制是一种利用软件或硬件方式来实现对电脑网络流量的控制。它的最主要方法&#xff0c;是引入QoS的概念&#xff0c;从通过为不同类型的 网络数据包标记&#xff0c;从而决定数据包通行的优先次序。 0x01 类型: 流控技术分为两种&#xff1a; 一种是…...

qemu解析qcow文件

旧的 QEMU 图像格式&#xff0c;支持备份文件、紧凑图像文件、加密和压缩。 backing_file 基础镜像的文件名&#xff08;参见create子命令&#xff09; encryption 此选项已弃用&#xff0c;相当于encrypt.formataes encrypt.format 如果设置为aes&#xff0c;则图像将使用 128…...

免费网站源码下载指南:如何安全获取并降低开发成本

许多开发者或是需要建立网站的人&#xff0c;可以方便地获取免费网站源码。这样的下载能帮助他们降低开发费用&#xff0c;迅速构建起基本框架。但在此过程中&#xff0c;仍有许多需要注意的事项。 许多开发者或是需要建立网站的人&#xff0c;可以方便地获取免费网站源码。这…...

【Ubuntu】如何设置 Ubuntu 自动每日更新:轻松保持系统安全

如何设置 Ubuntu 自动每日更新&#xff1a;轻松保持系统安全 大家好&#xff01;今天我们来聊一个非常实用的话题——如何让 Ubuntu 系统自动每日更新。如果你是一个 Ubuntu 用户&#xff0c;尤其是服务器管理员&#xff0c;你可能会经常遇到这样的问题&#xff1a;系统需要频…...

江科大STM32入门——UART通信笔记总结

wx&#xff1a;嵌入式工程师成长日记 1、简介 简单双向串口通信有两根通信线(发送端TX和接收端RX)TX与RX要交叉连接当只需单向的数据传输时&#xff0c;可以只接一根通信线当电平标准不一致时&#xff0c;需要加电平转换芯片 传输模式&#xff1a;全双工&#xff1b;时钟&…...

github gitbook写书

github创建新的仓库 在仓库中添加目录 ‘SUMMARY.md # Summary * [简介](README.md)gitbook 新建一个site https://www.gitbook.com/ 注册账号 取名字 一路 next&#xff0c;注意选免费版 最后 gitbook同步到github 你在主页可以看到 刚刚的test网站 点击右上角圈出来…...

探秘MetaGPT:革新软件开发的多智能体框架(22/30)

一、MetaGPT 引发的 AI 变革浪潮 近年来&#xff0c;人工智能大模型领域取得了令人瞩目的进展&#xff0c;GPT-3、GPT-4、PaLM 等模型展现出了惊人的自然语言处理能力&#xff0c;仿佛为 AI 世界打开了一扇通往无限可能的大门。它们能够生成流畅的文本、回答复杂的问题、进行创…...

【优选算法】Binary-Blade:二分查找的算法刃(下)

文章目录 1.山脉数组的峰顶索引2.寻找峰值3.寻找旋转排序数组中的最小值4.点名希望读者们多多三连支持小编会继续更新你们的鼓励就是我前进的动力&#xff01; 本篇接上一篇二分查找&#xff0c;主要通过部分题目熟悉二分查找的进阶使用&#xff0c;重点强调二段性&#xff0c;…...

Improving Language Understanding by Generative Pre-Training GPT-1详细讲解

Improving Language Understanding by Generative Pre-Training 2018.06 GPT-1 0.有监督、半监督、无监督 CV&#xff1a;ImageNet pre-trained model NLP&#xff1a;pre-trained model? 在计算机视觉中任务包含分类、检测、分割&#xff0c;任务类别数少&#xff0c;对应…...

分治算法——优选算法

本章我们要学习的是分治算法&#xff0c;顾名思义就是分而治之&#xff0c;把大问题分为多个相同的子问题进行处理&#xff0c;其中我们熟知的快速排序和归并排序用的就是分治算法&#xff0c;所以我们需要重新回顾一下这两个排序。 一、快速排序&#xff08;三路划分&#xf…...

EtherCAT转Modbus网关与TwinCAT3的连接及配置详述

在工业自动化控制系统中&#xff0c;常常需要整合不同的通信协议设备。本案例旨在展示如何利用捷米特JM-ECT-RTU协议转换网关模块&#xff0c;实现 EtherCAT 网络与 Modbus 设备之间的无缝连接&#xff0c;并在 TwinCAT3 环境中进行有效配置&#xff0c;以构建一个稳定可靠的自…...

装饰模式(Decorator Pattern)重构java邮件发奖系统实战

前言 现在我们有个如下的需求&#xff0c;设计一个邮件发奖的小系统&#xff0c; 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式&#xff08;Decorator Pattern&#xff09;允许向一个现有的对象添加新的功能&#xff0c;同时又不改变其…...

python/java环境配置

环境变量放一起 python&#xff1a; 1.首先下载Python Python下载地址&#xff1a;Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个&#xff0c;然后自定义&#xff0c;全选 可以把前4个选上 3.环境配置 1&#xff09;搜高级系统设置 2…...

家政维修平台实战20:权限设计

目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系&#xff0c;主要是分成几个表&#xff0c;用户表我们是记录用户的基础信息&#xff0c;包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题&#xff0c;不同的角色&#xf…...

《通信之道——从微积分到 5G》读书总结

第1章 绪 论 1.1 这是一本什么样的书 通信技术&#xff0c;说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号&#xff08;调制&#xff09; 把信息从信号中抽取出来&am…...

学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1

每日一言 生活的美好&#xff0c;总是藏在那些你咬牙坚持的日子里。 硬件&#xff1a;OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写&#xff0c;"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...

视频字幕质量评估的大规模细粒度基准

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用&#xff0c;因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型&#xff08;VLMs&#xff09;在字幕生成方面…...

从零实现STL哈希容器:unordered_map/unordered_set封装详解

本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说&#xff0c;直接开始吧&#xff01; 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...

【C++从零实现Json-Rpc框架】第六弹 —— 服务端模块划分

一、项目背景回顾 前五弹完成了Json-Rpc协议解析、请求处理、客户端调用等基础模块搭建。 本弹重点聚焦于服务端的模块划分与架构设计&#xff0c;提升代码结构的可维护性与扩展性。 二、服务端模块设计目标 高内聚低耦合&#xff1a;各模块职责清晰&#xff0c;便于独立开发…...

网络编程(UDP编程)

思维导图 UDP基础编程&#xff08;单播&#xff09; 1.流程图 服务器&#xff1a;短信的接收方 创建套接字 (socket)-----------------------------------------》有手机指定网络信息-----------------------------------------------》有号码绑定套接字 (bind)--------------…...

VM虚拟机网络配置(ubuntu24桥接模式):配置静态IP

编辑-虚拟网络编辑器-更改设置 选择桥接模式&#xff0c;然后找到相应的网卡&#xff08;可以查看自己本机的网络连接&#xff09; windows连接的网络点击查看属性 编辑虚拟机设置更改网络配置&#xff0c;选择刚才配置的桥接模式 静态ip设置&#xff1a; 我用的ubuntu24桌…...