在 Linux 中使用 cat 命令

   cat 命令用于打印文本文件的文件内容。至少,大多数 Linux 用户都是这么做的,而且没有什么问题。

    cat 实际上代表 “连接(concatenate)”,创建它是为了 合并文本文件。但只要有一个参数,它就会打印文件内容。因此,它是用户在终端中读取文件而无需任何其他选项的首选。

在 Linux 中使用 cat 命令

要使用 cat 命令,你必须遵循给定的命令语法:

cat [options] Filename(s)

这里:

  • [options] 用于修改 cat 命令的默认行为,例如使用 -n 选项获取每行的数字。
  • Filename 是你输入要使用的文件的文件名的位置。

为了简单起见,我将在本指南中使用名为 Haruki.txt 的文本文件,其中包含以下文本行:

Hear the Wind Sing (1979)
Pinball, 1973 (1980)
A Wild Sheep Chase (1982)
Hard-Boiled Wonderland and the End of the World (1985)
Norwegian Wood (1987)
Dance Dance Dance (1990)
South of the Border, West of the Sun (1992)
The Wind-Up Bird Chronicle (1994)
Sputnik Sweetheart (1999)
Kafka on the Shore (2002)
After Dark (2004)
1Q84 (2009-2010)
Colorless Tsukuru Tazaki and His Years of Pilgrimage (2013)
Men Without Women (2014)
Killing Commendatore (2017)

那么,在没有任何选项的情况下使用时,输出会是什么? 好吧,让我们看一下:

cat Haruki.txt

正如你所看到的,它打印了整个文本文件!

但你可以做的远不止这些。让我向你展示一些实际例子。

1、创建新文件

大多数 Linux 用户使用 touch 命令来 创建新文件,但使用 cat 命令也可以完成相同的操作!

在这种场景下,cat 命令比 touch 命令有一个优势,因为你可以在创建文件时向文件添加文本。听起来很酷。不是吗?

为此,你需要使用 cat 命令,将文件名附加到 > 后面,如下所示:

cat > Filename


 

2、将文件内容复制到另一个文件

考虑一个场景,你要将 FileA 的文件内容重定向到 FileB

当然,你可以复制和粘贴。但是如果有几百或几千行怎么办?

简单。你可以使用 cat 命令来重定向数据流。为此,你必须遵循给定的命令语法:

cat FileA > FileB
如果使用上述语法重定向文件内容,它将删除  FileB 的文件内容,然后重定向  FileA 的文件内容。

例如,我将使用两个文本文件 FileA 和 FileB,其中包含以下内容:


 

现在,如果我使用从 FileA 到 FileB 的重定向,它将删除 FileB 的数据,然后重定向 FileA 的数据:

cat FileA > FileB

同样,你可以对多个文件执行相同的操作:

cat FileA FileB > FileC

可以看到,上面的命令删除了 FileC 的数据,然后重定向了 FileA 和 FileB 的数据。

3、将一个文件的内容附加到另一个文件

有时你想要将数据附加到现有数据,在这种情况下,你必须使用 >> 而不是单个 >

cat FileA >> FileB

例如,在这里,我将把两个文件 FileA 和 FileB 重定向到 FileC

cat FileA.txt FileB.txt >> FileC.txt

redirect file content without overriding using the cat command

如你所见,它保留了 FileC.txt 的数据,并将数据附加在末尾。

你可以使用  >> 向现有文件添加新行。使用  cat >> filename 并开始添加所需的文本,最后使用  Ctrl+D 保存更改。

4、显示行数

你可能会遇到这样的情况,你想查看行数,这可以使用 -n 选项来实现:

cat -n File

例如,在这里,我将 -n 选项与 Haruki.txt 一起使用:

get the number of the lines in the cat command

5、删除空行

在文本文档中留下多个空白行? cat 命令将为你修复它!

为此,你所要做的就是使用 -s 标志。

但使用 -s 标志有一个缺点。你仍然留有一行空白:

remove blank lines with the cat command

正如你所看到的,它有效,但结果接近预期。

那么如何删除所有空行呢? 通过管道将其传递给 grep 命令:

cat File | grep -v '^$'

这里,-v 标志将根据指定的模式过滤掉结果,'^$' 是匹配空行的正则表达式。

以下是我在 Haruki.txt 上使用它时的结果:

cat Haruki.txt | grep -v '^$'

remove all the blank lines in text files using the cat command piped with grep regular expression

当获得完美的输出,你可以将其重定向到文件以保存输出:

cat Haruki.txt | grep -v '^$' > File

save output of cat command by redirection

这就是你到目前为止所学到的

以下是我在本教程中解释的内容的快速摘要:

命令描述
cat <Filename>将文件内容打印到终端。
cat >File创建一个新文件。
cat FileA > FileBFileB 的文件内容将被 FileA 覆盖。
cat FileA >> FileBFileA 的文件内容将附加到 FileB 的末尾。
cat -n File显示行数,同时省略文件的文件内容。
cat File | more将 cat 命令通过管道连接到 more 命令以处理大文件。请记住,它不能让你向上滚动!
cat File | less将 cat 命令通过管道传输到 less 命令,这与上面类似,但它允许你双向滚动。
cat File | grep -v '^$'从文件中删除所有空行。










 

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

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

相关文章

vscode中默认shell选择

terminal.integrated.defaultProfile.linux在vs的Preference的Settings里面搜索terminal.integrated.defaultProfile.linux&#xff0c;默认的应该是null&#xff0c;将其修改为bash即可。 linux———/bin/sh、 /bin/bash、 /bin/dash的区别

[设计模式 Go实现] 创建型~抽象工厂模式

抽象工厂模式用于生成产品族的工厂&#xff0c;所生成的对象是有关联的。 如果抽象工厂退化成生成的对象无关联则成为工厂函数模式。 比如本例子中使用RDB和XML存储订单信息&#xff0c;抽象工厂分别能生成相关的主订单信息和订单详情信息。 如果业务逻辑中需要替换使用的时候…

基于JWT的用户token验证

1. 基于session的用户验证 2. 基于token的用户身份验证 3. jwt jwt代码实现方式 1. 导包 <dependency><groupId>com.auth0</groupId><artifactId>java-jwt</artifactId><version>3.18.2</version> </dependency> 2. 在登录…

golang锁源码【只有关键逻辑】

条件锁 type Cond struct {L Lockernotify notifyList } type notifyList struct {wait uint32 //表示当前 Wait 的最大 ticket 值notify uint32 //表示目前已唤醒的 goroutine 的 ticket 的最大值lock uintptr // key field of the mutexhead unsafe.Pointer //链表头…

Redis经典五大类型源码及底层实现(一)

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是爱吃芝士的土豆倪&#xff0c;24届校招生Java选手&#xff0c;很高兴认识大家&#x1f4d5;系列专栏&#xff1a;Spring源码、JUC源码、Kafka原理、分布式技术原理、数据库技术&#x1f525;如果感觉博主的文章还不错的…

Excel模板填充:从minio上获取模板使用easyExcel填充

最近工作中有个excel导出的功能&#xff0c;要求导出的模板和客户提供的模板一致&#xff0c;而客户提供的模板有着复杂的表头和独特列表风格&#xff0c;像以往使用poi去画是非常耗时间的&#xff0c;比如需要考虑字体大小&#xff0c;单元格合并&#xff0c;单元格的格式等问…

Cisco模拟器-企业网络部署

某企业园区网有&#xff1a;2个分厂&#xff08;分别是&#xff1a;零件分厂、总装分厂&#xff09;1个总厂网络中心 1个总厂会议室&#xff1b; &#xff08;1&#xff09;每个分厂有自己的路由器&#xff0c;均各有&#xff1a;1个楼宇分厂网络中心 每个楼宇均包含&#x…

Apache Doris (五十五): Doris Join类型 - Colocation Join

🏡 个人主页:IT贫道_大数据OLAP体系技术栈,Apache Doris,Clickhouse 技术-CSDN博客 🚩 私聊博主:加入大数据技术讨论群聊,获取更多大数据资料。 🔔 博主个人B栈地址:豹哥教你大数据的个人空间-豹哥教你大数据个人主页-哔哩哔哩视频 目录 1. Colocation Join原理

Gitee触发Jenkins403讨逆猴子-解决方案

Jenkins报&#xff1a;403 No valid crumb was included in the request 具体解决方案如下&#xff1a; 执行如下脚本内容&#xff1a; hudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION true成功后&#xff1a; Gitee再次测试&#xff1a…

51单片机项目(24)——基于51单片机的温控风扇protues仿真

1.功能设计 使用传感器测量温度&#xff0c;并将温度显示在LCD1602上。如果温度超过阈值&#xff0c;那么就打开风扇&#xff0c;否则风扇不打开。&#xff08;仿真的时候&#xff0c;用直流电机模拟风扇&#xff09;。 仿真截图如下&#xff1a; 此时温度是27度&#xff0c;我…

C++初阶——基础知识(函数重载与引用)

目录 1.命名冲突 2.命名空间 3.缺省参数 4.函数重载 1.函数重载的特点包括&#xff1a; 2.函数重载的好处包括&#xff1a; 3.引用 引用的特点包括 引用的主要用途包括 引用和指针 引用 指针 类域 命名空间域 局部域 全局域 第一个关键字 命名冲突 同一个项目之间冲…

自动驾驶学习笔记(二十四)——车辆控制开发

#Apollo开发者# 学习课程的传送门如下&#xff0c;当您也准备学习自动驾驶时&#xff0c;可以和我一同前往&#xff1a; 《自动驾驶新人之旅》免费课程—> 传送门 《Apollo开放平台9.0专项技术公开课》免费报名—>传送门 文章目录 前言 控制算法 控制标定 控制协议…

C# PrinterSettings修改打印机纸张类型,paperType

需求&#xff1a;直接上图&#xff0c;PrinterSettings只能改变纸张大小&#xff0c;打印质量&#xff0c;无法更改打印纸类型 爱普生打印机打印照片已经设置了最高质量&#xff0c;打印图片仍不清晰&#xff0c;需要修改打印纸类型&#xff0c;使用PrintDialog调出对话框&…

Avalonia学习(十五)-OxyPlot

今天开始继续Avalonia练习。展示一些样例&#xff0c;尤其是第三方库的使用。 本节&#xff1a;OxyPlot 1.引入OxyPlot.Avalonia 2.项目引入 在Main方法里增加OxyPlotModule.EnsureLoaded()方法调用。 public static void Main(string[] args) {OxyPlotModule.EnsureLoade…

向量数据库调研

向量数据库的优势 数据库类型 适用场景 典型数据库举例 关系型数据库&#xff08;RDBMS&#xff09; 处理结构化数据&#xff0c;擅长OLTP&#xff0c;如财务、人事管理等。 MySQL&#xff0c;Oracle&#xff0c;SQL Server 非关系型数据库&#xff08;NoSQL&#xff09;…

太阳系三体模拟器

介绍 《三体》是刘慈欣创作的长篇科幻小说&#xff0c;文中提到的三体问题比较复杂和无解。 该项目代码就是利用 Python 来模拟三体的运行&#xff0c;此项目代码完全共享&#xff0c;欢迎下载。 我们可以自己通过调整天体的初始坐标、质量和矢量速度等等参数来自定义各种场景…

使用Android Studio等idea工具开发flutter应用,必备的debug调试技能,非常好用

我们程序员不论开发什么软件&#xff0c;都需要一把锋利的调试工具&#xff0c;这是必不可少的&#xff0c;不然出现问题了&#xff0c;你都不知道问题是啥&#xff0c;出现在哪&#xff0c;就更别说怎么解决了。所以我这里就介绍一下android studio开发flutter必备的调试技能&…

全栈架构:从0开始,Vue的搭建与开发

尼恩说在前面 在40岁老架构师 尼恩的读者交流群(50)中&#xff0c;很多小伙伴拿到一线互联网企业、上市企业如阿里、网易、有赞、希音、百度、滴滴的面试资格。 然后&#xff0c;很多小伙伴平时聚焦CRUD&#xff0c;没有亮点项目&#xff0c; 黄金项目。 简历也写得是非常lo…

政务大数据能力平台建设方案:文件全文30页,附下载

关键词&#xff1a;智慧政务解决方案&#xff0c;智慧政务建设&#xff0c;智慧政务服务平台&#xff0c;智慧政务大数据&#xff0c;数字政务一体化平台。大数据&#xff0c;政务大数据建设 一、智慧政务建设需求 1、政务服务需求&#xff1a;智慧政务建设需要满足人民群众的…

2023年《环球科学》十大科学新闻

2023年3月的一篇重磅文章迅速将“室温超导”的话题送上各大媒体的头条&#xff0c;在惊呼一个新时代来临之余&#xff0c;很多科学家也提出了反对意见。于是&#xff0c;精彩的多方对垒几乎贯穿了这一整年。虽然最终以撤稿收尾&#xff0c;但这也让我们见识了众人对突破性技术的…