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

在这里插入图片描述


文章标题

  • 简介
  • 一,参数列表
  • 二,使用介绍
    • 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参数可以压缩文件中连续的空行,只显示一行空行。

例如文件内容为:

HelloWorldGoodbye

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

HelloWorld 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.rhkb.cn/news/80276.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java文件

一.File类 二.扫描指定目录&#xff0c;并找到名称中包含指定字符的所有普通文件&#xff08;不包含目录&#xff09;&#xff0c;并且后续询问用户是否要删除该文件 我的代码: import java.io.File; import java.io.IOException; import java.util.Scanner;public class Tes…

瑞芯微RK3568核心板-4G联网测试

​ &#x1f308;引言 RK3568是瑞芯微针对AIOT和工业市场推出的一款高性能、低功耗、功能丰富的应用处理器。它采用了四核ARM架构64位Cortex-A55处理器&#xff0c;主频高达2.0GHz&#xff0c;集成瑞芯微自研1TOPS算力NPU, 同时集成Mali-G52 2EE GPU&#xff0c;支持4K60fps …

React Native连接Zebra斑马打印机通过发送CPCL指令打印(Android 和 iOS通用)

自 2015 年发布以来&#xff0c;React Native 已成为用于构建数千个移动应用程序的流行跨平台移动开发框架之一。通常&#xff0c;我们有开发人员询问如何将 Link-OS SDK 与 React Native 应用程序集成&#xff0c;以便在 Zebra 打印机上打印标签。在本教程中&#xff0c;我们将…

深度学习常用的激活函数

深度学习的核心思想是通过多层次的神经网络结构&#xff0c;逐步抽取和表示数据中的高级特征&#xff0c;从而实现对复杂数据模式的学习和识别。 神经网络结构&#xff1a; 深度学习使用多层次的神经网络&#xff0c;包括输入层、隐藏层和输出层。这些网络结构允许模型自动学习…

一、Webpack相关(包括webpack-dev-server用以热更新和html-webpack-plugin)

概念与功能&#xff1a; webpack是前端项目工程化的具体解决方案。它提供了友好的前端模块化开发支持&#xff0c;以及代码压缩混淆、处理浏览器端JavaScript的兼容性、性能优化等强大的功能。 快速上手&#xff1a;隔行变色 -S实际是--save的简写&#xff0c;表示安装的第三方…

以太网DHCP协议(十)

目录 一、工作原理 二、DHCP报文 2.1 DHCP报文类型 2.2 DHCP报文格式 当网络内部的主机设备数量过多是&#xff0c;IP地址的手动设置是一件非常繁琐的事情。为了实现自动设置IP地址、统一管理IP地址分配&#xff0c;TCPIP协议栈中引入了DHCP协议。 一、工作原理 使用DHCP之…

Java 并发容器和框架Fork/Join详解

目 录 一 使用场景 1 大规模数据处理 2 复杂计算 3 并行搜索 4 并行排序 二 Fork/Join框架介绍 三 Fork/Join框架模块 四 Fork/Join框架核心思想 1分治思想(Divide-and-Conquer) 2 work-stealing(工作窃取)算法 五 Fork/Join框架执行流程 1 实现原理&#xff1a; 2…

消息队列(3) -封装数据库的操作

前言 上一篇博客我们写了, 关于交换机, 队列,绑定, 写入数据库的一些建库建表的操作 这一篇博客中,我们将建库建表操作,封装一下实现层一个类来供上层服务的调用 , 并在写完该类之后, 测试代码是否完整 实现封装 在写完上述的接口类 与 xml 后, 我们想要 创建一个类 ,来调用…

智慧城市规划新引擎:探秘数字孪生中的二维与三维GIS技术差异

智慧城市作为人类社会发展的新阶段&#xff0c;正日益引领着我们迈向数字化未来的时代。在智慧城市的建设过程中&#xff0c;地理信息系统&#xff08;GIS&#xff09;扮演着举足轻重的角色。而在GIS的发展中&#xff0c;二维和三维GIS作为两大核心技术&#xff0c;在城市规划与…

thinkphp8.0多应用模式下提示控制器不存在

thinkphp 8.0 开启多应用模式 1、按照官方文档说明 &#xff0c;已经安装了 think-multi-app composer require topthink/think-multi-app 2、控制器的命名空间也没写错。 3、访问路径与目录名、控制器、方法名一样&#xff0c;访问地址是没错的。 4、网上有说&#xff0c;在…

机器学习深度学习——序列模型(NLP启动!)

&#x1f468;‍&#x1f393;作者简介&#xff1a;一位即将上大四&#xff0c;正专攻机器学习的保研er &#x1f30c;上期文章&#xff1a;机器学习&&深度学习——卷积神经网络&#xff08;LeNet&#xff09; &#x1f4da;订阅专栏&#xff1a;机器学习&&深度…

Android 网络协议与网络编程

一、TCP/IP协议 Transmission Control Protocol/Internet Protocol的简写&#xff0c;中译名为传输控制协议/因特网互联 协议&#xff0c;是Internet最基本的协议、Internet国际互联网络的基础&#xff0c;由网络层的IP协议和传输层的TCP 协议组成。协议采用了4层的层级结构。…

Debian安装和使用Elasticsearch 8.9

命令行通过 .deb 包安装 Elasticsearch 创建一个新用户 adduser elastic --> rust # 添加sudo权限 # https://phoenixnap.com/kb/how-to-create-sudo-user-on-ubuntu usermod -aG sudo elastic groups elastic下载Elasticsearch v8.9.0 Debian 包 https://www.elastic.co/…

【PCB专题】Allegro中如何自动查找并删除不使用的规则

在Allegro软件使用中,我们经常是从上一个版本修改而来的。那么就会遇到有些多余规则没有使用的情况,怎么能够知道哪些规则没有使用并删除呢? 如下所示在Electrical中的All Constraints下存在SDIO规则和WIFI_SDIO规则。这两个规则是重复的,只是名称不同而已。 在规则的使…

python调用pytorch的clip模型时报错

使用python调用pytorch中的clip模型时报错&#xff1a;AttributeError: partially initialized module ‘clip’ has no attribute ‘load’ (most likely due to a circular import) 目录 现象解决方案一、查看项目中是否有为clip名的文件二、查看clip是否安装成功 现象 clip…

防火墙第二次作业

一、什么是防火墙&#xff1f; 百度给出个一个定义&#xff1a;防火墙技术是通过有机结合各类用于安全管理与筛选的软件和硬件设备&#xff0c;帮助计算机网络于其内、外网之间构建一道相对隔绝的保护屏障&#xff0c;以保护用户资料与信息安全性的一种技术。 通俗的来讲&#…

TestDataLake在提升测试效能方面的实践

目录 1.背景 2.预期目标 3.系统设计和实现 3.1系统功能组成 3.2 数据智能生成 3.3 接口遍历测试 4.应用效果和收益 5.后续规划 1.背景 随着软件开发的迅速发展&#xff0c;测试数据管理变得越来越复杂。手动创建测试数据需要耗费大量时间和精力&#xff0c;同时容易出…

【Docker】docker镜像+nginx部署vue项目:

文章目录 一、文档&#xff1a;二、打包vue项目&#xff1a;三、配置nginx&#xff1a;四、配置Dockerfile&#xff1a;五、构建镜像&#xff1a;六、运行容器&#xff1a;七、最终效果&#xff1a; 一、文档&#xff1a; 【1】菜鸟教程&#xff1a;https://www.runoob.com/do…

【云原生】深入掌握k8s中Pod和生命周期

个人主页&#xff1a;征服bug-CSDN博客 kubernetes专栏&#xff1a;kubernetes_征服bug的博客-CSDN博客 目录 1 什么是 Pod 2 Pod 基本操作 3 Pod 运行多个容器 4 Pod 的 Labels(标签) 5 Pod 的生命周期 1 什么是 Pod 摘取官网: Pod | Kubernetes 1.1 简介 Pod 是可以在 …

linux Ubuntu 更新镜像源、安装sudo、nvtop、tmux

1.更换镜像源 vi ~/.pip/pip.conf在打开的文件中输入: pip.conf [global] index-url https://pypi.tuna.tsinghua.edu.cn/simple按下:wq保存并退出。 2.安装nvtop 如果输入指令apt install nvtop报错&#xff1a; E: Unable to locate package nvtop 需要更新一下apt&a…