【Linux命令详解 | cat命令】用于显示或连接文件

news2024/12/24 9:52:49

在这里插入图片描述


文章标题

  • 简介
  • 一,参数列表
  • 二,使用介绍
    • 1. 显示文件内容
    • 2. 创建文件
    • 3. 连接文件
    • 4. 显示行号
    • 5. 压缩空行
    • 6. 显示特殊字符
    • 7. 显示行号和特殊字符
    • 8. 从标准输入读取
    • 9. 显示文件开头或结尾
    • 10. 备份文件
    • 11. 显示文件内容至多屏幕大小
    • 12. 转义正则表达式
    • 13. 显示文件中的制表符
    • 14. 显示隐藏字符
    • 15. 将二进制文件复制
  • 总结


简介

cat命令用于显示或连接文件,是Linux系统中非常常用的文件操作命令。通过cat命令,可以显示、创建、连接文件。熟练掌握cat命令的用法,是掌握Linux系统操作的重要一步。

一,参数列表

参数功能
-A显示不可打印字符,并在行尾显示$
-b显示行号,行号添加在非空行前面
-E显示行结束字符$
-n显示包含行号的输出
-s压缩连续的空行输出
-T显示制表符为^I
-v显示不可打印字符
文件要显示或连接的文件

二,使用介绍

1. 显示文件内容

cat命令最基本的用法就是显示文件内容。在命令行输入cat文件名可以显示该文件的内容。

例如,当前目录下有一个文件demo.txt,内容为:

This is a test file.
Hello World!  

要显示该文件内容,可以输入:

cat demo.txt

输出结果为:

This is a test file.
Hello World!

cat命令将demo.txt文件的内容原样显示出来。

cat命令也可以显示多个文件,例如:

cat demo.txt test.txt

这样将一次显示出demo.txt和test.txt的内容。

2. 创建文件

cat命令不仅可以显示文件内容,还可以创建新文件。

例如,可以使用下面的命令创建一个文件demo2.txt:

cat > demo2.txt

然后输入文件内容,如:

This is a new file.

按Ctrl+D结束文件内容的输入。这样就创建了文件demo2.txt,内容为刚才输入的文本。

也可以将内容重定向到文件中,例如:

cat <<EOF > demo3.txt
Hello
This is demo3
EOF

这将在demo3.txt中创建内容为"Hello"和"This is demo3"的文件。

3. 连接文件

cat命令可以将多个文件连接起来输出。

例如当前目录下有三个文件:

  • demo.txt 内容为"This is a test file"
  • test.txt 内容为"Hello World"
  • demo2.txt 内容为"This is a new file"

可以使用cat命令将这三个文件连接成一个文件:

cat demo.txt test.txt demo2.txt > combined.txt

这样combined.txt的内容就成了三个文件内容的总和。

4. 显示行号

使用cat命令的-n参数可以显示输出时包含行号:

cat -n demo.txt

输出结果:

     1	This is a test file.
     2	Hello World!

行号将显示在每行内容前面。

5. 压缩空行

使用-s参数可以压缩文件中连续的空行,只显示一行空行。

例如文件内容为:

Hello

World


Goodbye

使用cat -s显示将会变成:

Hello

World 

Goodbye

中间的连续空行被压缩成只显示一行。

6. 显示特殊字符

  • 使用-v参数可以显示文件中的特殊字符

  • 使用-E参数可以显示行结束符$

  • 使用-T参数可以显示Tab键为^I

例如文件内容为:

Hello	World
Goodbye$

使用cat -TEv显示结果为:

Hello^IWorld$
Goodbye$

7. 显示行号和特殊字符

cat命令的多个参数可以组合使用,例如同时显示行号和特殊字符:

cat -n -TEv demo.txt

这将同时显示行号、行结束符和制表符。

8. 从标准输入读取

cat命令可以不指定文件名,从标准输入读取内容。

例如:

cat

然后输入内容,按Ctrl+D结束。这将从标准输入读取内容。

也可以将其他命令的输出通过管道传递给cat:

ls -l | cat

这将显示ls -l命令的输出。

9. 显示文件开头或结尾

虽然cat命令可以显示整个文件内容,但有时只需要显示开头或结尾的部分。

这时可以结合head和tail命令。

例如显示文件开头5行:

head -n 5 demo.txt | cat

显示文件结尾5行:

tail -n 5 demo.txt | cat

head和tail命令可以提取文件开头或结尾部分,然后通过管道传递给cat命令显示出来。

10. 备份文件

可以使用cat命令来备份文件。

例如将demo.txt备份为demo_bak.txt:

cat demo.txt > demo_bak.txt

这将复制demo.txt的全部内容到demo_bak.txt中。

11. 显示文件内容至多屏幕大小

cat命令默认会显示整个文件的内容,但有时只需要查看一屏的内容。

可以使用下面的命令只显示一屏大小的内容:

cat demo.txt | less

less命令可以按页显示文件内容。

12. 转义正则表达式

cat命令可以用来转义正则表达式中的特殊字符。

例如想使用正则表达式匹配数字,可以:

cat << EOF > pattern.txt
[0-9]
EOF

这会将正则表达式写到pattern.txt文件中,而不会被Shell解析。

13. 显示文件中的制表符

cat命令默认不会显示Tab键,只显示空格。

使用-T参数可以将Tab键以^I显示:

cat -T demo.txt

这在查看 Makefile 或源代码文件时很有用。

14. 显示隐藏字符

使用cat -v 可以显示文件中的一些隐藏字符,例如:

NL(换行符)显示为$
TAB(制表符)显示为^I  
DEL删除字符显示为^?

这可以帮助查看文件中包含的一些隐藏的控制字符。

15. 将二进制文件复制

cat命令可以用来复制二进制文件。

例如将一个图片测试.jpg 复制为测试2.jpg:

cat test.jpg > test2.jpg

cat命令将数据原封不动地复制。

这比文本编辑器打开图片文件要好,不会因为编码问题改变图片内容。


总结

cat命令作为Linux系统中常用的文件查看和处理命令,功能强大。掌握cat的各种参数用法,可以让我们更方便地处理文件内容。

在显示文件、创建文件、连接文件等方面,都可以使用cat命令。和其他命令组合使用,也可以实现显示行号、只查看部分内容等效果。

熟练使用cat命令,必将提高我们在Linux系统中的文件处理效率。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

集成学习:机器学习模型如何“博采众长”

前置概念 偏差 指模型的预测值与真实值之间的差异&#xff0c;它反映了模型的拟合能力。 方差 指模型在不同的训练集上产生的预测结果的差异&#xff0c;它反映了模型的稳定性。 方差和偏差对预测结果所造成的影响 在机器学习中&#xff0c;我们通常希望模型的偏差和方差都…

ffmpeg源码编译成功,但是引用生成的静态库(.a)报错,报错位置在xxx_list.c,报错信息为某变量未定义

背景&#xff1a;本文是对上一个文章的补充&#xff0c;在源码编译之前&#xff0c;项目是有完整的ffmpeg编译脚本的&#xff0c;只不过新增了断点调试ffmpeg&#xff0c;所以产生的上面的文章&#xff0c;也就是说&#xff0c;我在用make编译成功后&#xff0c;再去做的源码编…

快速上手React:从概述到组件与事件处理

前言 「作者主页」&#xff1a;雪碧有白泡泡 「个人网站」&#xff1a;雪碧的个人网站 「推荐专栏」&#xff1a; ★java一站式服务 ★ ★ React从入门到精通★ ★前端炫酷代码分享 ★ ★ 从0到英雄&#xff0c;vue成神之路★ ★ uniapp-从构建到提升★ ★ 从0到英雄&#xff…

3.4 网络安全管理设备

数据参考&#xff1a;CISP官方 目录 IDS (入侵检测系统)网络安全审计漏洞扫描系统VPN&#xff08;虚拟专网&#xff09;堡垒主机安全管理平台 一、IDS (入侵检测系统) 入侵检测系统&#xff08;IDS&#xff09;是一种网络安全设备&#xff0c;用于监测和检测网络中的入侵行…

OLTP和OLAP的区别以及使用场景

1、什么是OLTP&#xff1f; 全称OnLine Transaction Processing&#xff0c;联机事务处理系统&#xff0c;就是对数据的增删改查等操作 存储的是业务数据&#xff0c;来记录某类业务事件的发生&#xff0c;比如下单、支付、注册等 典型代表有Mysql、Oracle等数据库&#xff…

微服务 云原生:基于 Gogs + Drone 进行项目 CI/CD

传统构建部署 以一个简单的前后端项目来说&#xff0c;分别编写前后端的 Dockerfile 文件并构建镜像&#xff0c;然后编写 docker-compose.yml 构建部署&#xff0c;启动运行。 一个简单的例子&#xff1a; 前端&#xff1a; 项目名&#xff1a;kubemanagement-web技术栈&am…

【雕爷学编程】Arduino动手做(193)---移远 BC20 NB+GNSS模块10

37款传感器与模块的提法&#xff0c;在网络上广泛流传&#xff0c;其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和执行器模块&#xff0c;依照实践出真知&#xff08;一定要动手做&#xff09;的理念&#xff0c;以学习和交流为目的&#x…

每天一道leetcode:剑指 Offer 53 - I. 在排序数组中查找数字 I(适合初学者二分查找)

今日份题目&#xff1a; 统计一个数字在排序数组中出现的次数。 示例1 输入: nums [5,7,7,8,8,10], target 8 输出: 2 示例2 输入: nums [5,7,7,8,8,10], target 6 输出: 0 提示 0 < nums.length < 10^5 -10^9 < nums[i] < 10^9 nums 是一个非递减数组…

高分子混合铝电解电容器

本文将通过图文形式为各位介绍导电性高分子混合铝电解电容器特点&优势、基础信息、应用场景‘产品阵容等。 太阳诱电导电性高分子混合铝电解电容器&#xff0c;最适合需要大容量和高耐压的车载装置和产业设备。电解质使用导电性高分子和电解液&#xff0c;找元器件现货上唯…

八、ESP32控制8x8点阵屏

引脚的说明如下 上图中 C表示column 列的意思,所有的C接高电压,即控制esp32中输出1L表示line 行的意思,所有的L接低电压,即控制esp32中输出为01. 运行效果 2. 点阵屏引脚

嵌入式学习之震动喇叭项目

震动喇叭项目所用到的元器件有振动传感器模块、继电器模块、高功率喇叭、433M无线发射接收模块&#xff0c;通过这些模块&#xff0c;能够实现做出一个智能报警系统的项目出来&#xff0c;非常的有趣&#xff0c;特别是喇叭声音想起来&#xff0c;那个声音挺大的。 继电器的学…

数据结构 | 二叉树的应用

目录 一、解析树 二、树的遍历 一、解析树 我们可以用解析树来表示现实世界中像句子或数学表达式这样的构造。 我们可以将((73)*(5-2))这样的数学表达式表示成解析树。这是完全括号表达式&#xff0c;乘法的优先级高于加法和减法&#xff0c;但因为有括号&#xff0c;所以在…

Java课设--学生信息管理系统(例2)

文章目录 前提一、运行效果二、代码获取 前言 首先确定自己的JDBC连接数据库已经完成&#xff0c;不懂可以看看其他博主的解析。 我使用的是SQL Server数据库&#xff0c;数据库名称为stu,账号为sa,密码为123456 数据库的表为student表&#xff0c;内容如下&#xff1a; 一、…

宏观上看Spring创建对象的过程

宏观上看Spring创建对象的过程 对于对象而言&#xff0c;可以分为简单对象和复杂对象&#xff1b; 简单对象 简单对象指可以直接new的对象&#xff1b; Spring在创建这些对象时&#xff0c;是基于反射来完成的。复杂对象 复杂对象指不能直接new的对象。 比如&#xff1a;要得到…

新能源电车交流充电桩控制主板的安全性维度

你是否想过&#xff0c;交流充电桩主板的安全性有多重要?它不仅关乎充电设备的寿命&#xff0c;还关乎电网的安全。今天我们就来探讨一下&#xff0c;如何从多个维度保证交流充电桩主板的安全性。 首先&#xff0c;交流充电桩主板采用多重安全保护技术&#xff0c;可以有效地保…

(15)Qt绘图(two)

目录 坐标变换 平移坐标轴 缩放坐标轴 旋转坐标轴 定时器加坐标轴旋转实现动画旋转 transform旋转&#xff08;可设置旋转轴&#xff09; 绕X轴旋转 绕Y轴旋转 绕Z轴旋转 错切 Y轴错切 X轴错切 画家的保存与坐标复原 基本图形绘制 绘制点 绘制线 绘制矩形 普…

【雕爷学编程】Arduino动手做(195)---HT16k33 矩阵 8*8点阵屏模块2

37款传感器与模块的提法&#xff0c;在网络上广泛流传&#xff0c;其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和执行器模块&#xff0c;依照实践出真知&#xff08;一定要动手做&#xff09;的理念&#xff0c;以学习和交流为目的&#x…

链表——LinkedList类的概述和实现

LinkedList类 1.1LinkedList类概述 LinkedList类底层是基于双向链表结构实现的&#xff0c;不同于ArrayList类和Vector类是基于数组实现的&#xff1b;LinkedList类是非线程安全的&#xff1b;LinkedList类元素允许为null&#xff0c;允许重复元素&#xff1b;LinkedList类插…

Python识别抖音Tiktok、巨量引擎滑块验证码识别

由于最近比较忙&#xff0c;所以本周搞了一个相对简单的验证码&#xff0c;就是抖音Tiktok的滑块验证码&#xff0c;这也是接到客户的一个需求。这种验证码通常在电脑端登录抖音、巨量引擎的的时候出现。 首先看一下最终的效果&#xff1a; 验证码识别过程 1、利用爬虫采集图…