Linux——文件的读取与搜索

news2024/9/28 5:30:20

文章目录

    • 文件读取
      • cat和tac命令
      • head和tail命令
      • more和less命令
      • wc和du命令


文件读取

文件的读取

cat和tac命令

cat命令将文件中全部内容都打印到屏幕上,适合较小文件的读取,不适合大文件。

tac命令是从最后一行开始反向打印,这一点与cat命令正好相反。

语法:cat/tac [-参数] [文件名]

cat命令参数:

符号说明
-n显示行号
-b显示行号,但不显示空行行号
-E显示$结尾符
-s如何正好有连续的两行或以上的空行,则显示为1行空行
-TTab ^I显示出来
-v显示特殊字符,除了 LFD TAB 之外
-A显示全部内容,列出所有隐藏符号,等价于-vET
-e等价于-vE
-t等价于-vt

例如:

[wjj@learning study]$ cat study.txt 
这是第一行
好好学习
天天向上
[wjj@learning study]$ tac study.txt 
天天向上
好好学习
这是第一行

1)使用-n显示行号

[wjj@learning study]$ cat -n study.txt 
     1	这是第一行
     2	好好学习
     3	天天向上

2)显示多个文件

[wjj@learning study]$ echo "这是第一个文件" > study1.txt
[wjj@learning study]$ echo "这是第二个文件" > study2.txt
[wjj@learning study]$ echo "这是第三个文件" > study3.txt
[wjj@learning study]$ cat study1.txt study2.txt study3.txt 
这是第一个文件
这是第二个文件
这是第三个文件
[wjj@learning study]$ cat -n study1.txt study2.txt study3.txt 
     1	这是第一个文件
     2	这是第二个文件
     3	这是第三个文件

3)结合重定向符号向文件中输入

重定向符号
符号说明
<将数据输入到左侧,覆盖原来的数据
<<将数据输入到左侧,追加数据
>将数据输入到右侧,覆盖原来的数据
>>将数据输入到右侧,追加数据

结合重定向符号,进行多行输入:

[wjj@learning study]$ cat > study.txt << "EOF"
> 这是第一行
> 好好学习
> 天天向上
> EOF

如果只进行单行输入,利用echo命令即可

[wjj@learning study]$ echo "hello wolrd" >> hello.txt
[wjj@learning study]$ cat hello.txt 
hello wolrd

catecho命令在重定向输入时,如果该文件不存在,那么系统会自动生成该普通文件。

4)清空文件全部内容

/dev/null 称空设备,是一个特殊的设备文件,它丢弃一切写入其中的数据(但报告写入操作成功),读取它则会立即得到一个 EOF。配合重定向操作符,可以实现清空某个文件的目的。

例如:

[wjj@learning study]$ echo "hello world" > hello.txt
[wjj@learning study]$ cat hello.txt
hello world
[wjj@learning study]$ cat /dev/null > hello.txt 
[wjj@learning study]$ cat hello.txt
[wjj@learning study]$                #文件已经空了,因此不显示

head和tail命令

head从头开始打印文件,不加参数默认打印前十行。

tail从尾开始打印文件,不加参数默认打印后十行。

语法:head/tail [-参数] [文件名]

例如:

[wjj@learning study]$ for i in {1..100};do echo "${i}" >> number.txt;done #输入1~100至文件中
[wjj@learning study]$ head number.txt 
1
2
3
4
5
6
7
8
9
10
[wjj@learning study]$ tail number.txt 
91
92
93
94
95
96
97
98
99
100

cat可选择参数:

符号说明
-c显示前n个字符
-n显示前n行
-q不显示文件名
-v显示文件名

参数示例:

[wjj@learning study]$ head -c 10 number.txt  #因为每行结尾有换行符`$`,因此10个字节只打印了五个数字
1
2
3
4
5
[wjj@learning study]$ head -n 5 number.txt 
1
2
3
4
5
[wjj@learning study]$ head -5 number.txt  # 单独使用-n选项时,也可以这么写
1
2
3
4
5
[wjj@learning study]$ head -q -n 5 number.txt #head默认不打印文件的名
1
2
3
4
5
[wjj@learning study]$ head -v -n 5 number.txt 
==> number.txt <==
1
2
3
4
5

tail命令可选参数:

符号说明
-c显示前n个字符
-n显示前n行
-q不显示文件名
-v显示文件名
-f检测文件,写入后检测
-F检测文件,保存后即可读取
-s与-f搭配使用,表示休眠间隔

通过-f和-F选项会进入到检测界面,按ctrl C退出。

-f选项只有在文件写入后才能检测到。(例如:vim编辑文件,必须完全退出vim环境才能检测到最新信息)

-F选项支持一边写入,一遍读取,在vim中只要w保存,即可检测到。


more和less命令

语法:more/less [-参数] [文件名]

more命令可以分屏打印文件,其工作原理与cat一样,都是将文件中全部信息提取出来,占用内存不利于大文件读取。

less命令是打印多少提取多少,不占用内存。

more命令只能向后翻,不能向前翻。

less命令可以随意浏览,并且可以使用小键盘上下移动。

使用moreless命令的使用技巧:

  • 空格——翻篇
  • 回车——下一行
  • q——退出

wc和du命令

语法:wc/du [-参数] [文件名]

wc命令如果不加任何参数,那么它会返回一个文件的 [行数] [单词数] [字节数]

其中单词数是以空格进行区分。

wc命令可选参数:

符号说明
-l只显示行数
-w只显示单词数数
-c只显示字节数

du命令可选参数:

符号说明
-a显示目录中个别文件的大小
-b显示目录或文件大小时,以字节为单位
-c除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和
-D显示指定符号连接的源文件大小
-h以K,M,G为单位,提高信息的可读性
-H与-h参数相同,但是K,M,G是以1000为换算单位
-k以1024 bytes为单位
-l重复计算硬件连接的文件
-L<符号连接>显示选项中所指定符号连接的源文件大小
-m以1MB为单位
-s仅显示总计
-S显示个别目录的大小时,并不含其子目录的大小
-x以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过

wu命令示例:

[wjj@learning study]$ wc number.txt learning.txt 
130 130 412 number.txt
  3   4  28 learning.txt
133 134 440 total         #总计

du命令示例:

[wjj@learning ~]$ du -a study/
4	study/pos_param.sh
4	study/learning1.txt
4	study/RunShell.sh
4	study/study2.txt
4	study/learning.txt
12	study/.number.txt.swp
4	study/study3.txt
4	study/study.txt
4	study/study1.txt
4	study/number.txt
4	study/makeuser.sh
56	study/               #总计
[wjj@learning ~]$ du -s study/
56	study/

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

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

相关文章

2023.1.9 学习总结

1.二叉排序树的相关操作 二叉排序树的相关操作可以分为这几种&#xff1a; 1.创建二叉排序树 2.插入值 3.查找值 4.删除值 首先给出二叉排序树的结点类型定义&#xff1a;&#xff08;就是一个二叉树&#xff09; struct bis {int data;bis* left;bis* right; }; 因为创…

熊海cms1.0代码审计

目录 一、环境搭建 二、代码审计 &#xff08;1&#xff09;后台存在登录绕过漏洞 &#xff08;2&#xff09;登录后台user处存在SQL注入 &#xff08;3&#xff09;前&#xff08;后&#xff09;台文件包含漏洞 &#xff08;4&#xff09;后台SQL注入 1、admin/files/…

程序员简历上写这种项目,难怪面试当炮灰。。。

目录&#xff1a; 高级工程师必备&#xff1a;系统设计能力如何让你的项目更有技术含量 上篇文章 《我只是把握好了这3点&#xff0c;1个月后成功拿下大厂offer&#xff01;》我们聊了聊Java工程师在跳槽前的1个月&#xff0c;如何利用较短的时间从技术广度、技术深度、基础功…

实现一个二叉搜索树

目录 1、认识二叉搜索树 2、实现一个二叉搜索树 2.1 成员变量 2.2 insert 方法 2.3 search 方法 2.4 remove 方法(重点) 3、二叉搜索树总结 1、认识二叉搜索树 从字面上来看&#xff0c;它只比二叉树多了搜索两个字&#xff0c;我们回想一下&#xff0c;如果要是在二…

TP4056国产替代DP4056 1A 锂离子电池充电器芯片

DP4056是一款单节锂离子电池恒流/恒压线性充电器,采用底部带散热片的SOP8封装以及简单的外部应用电路&#xff0c;非常适合便携式设备应用,适合USB电源和适配器电源工作,内部采用防倒充电路&#xff0c;不需要外部隔离二极管。热反馈可对充电电流进行自动调节&#xff0c;以便在…

一篇文章了解 StarRocks

前言 本文隶属于专栏《大数据技术体系》&#xff0c;该专栏为笔者原创&#xff0c;引用请注明来源&#xff0c;不足和错误之处请在评论区帮忙指出&#xff0c;谢谢&#xff01; 本专栏目录结构和参考文献请见大数据技术体系 正文 StarRocks 是新一代极速全场景 MPP 数据库。St…

php宝塔搭建部署实战响应式园林景观设计公司网站系统源码

大家好啊&#xff0c;我是测评君&#xff0c;欢迎来到web测评。 本期给大家带来一套php开发的响应式园林景观设计公司网站系统源码&#xff0c;感兴趣的朋友可以自行下载学习。 技术架构 PHP7.2 nginx mysql5.7 JS CSS HTMLcnetos7以上 宝塔面板 文字搭建教程 下载源码…

12月更新2022亮点总结 | Java on Visual Studio Code

大家好&#xff0c;一年的时间过得很快&#xff0c;我们已经来到了2023年。回顾2022年&#xff0c;我们的产品也经历了很多的迭代&#xff0c;在此之中&#xff0c;我们有几个亮点想与大家分享&#xff01; 2022年的亮点 Spring Boot 插件的重大可视化体验升级 从今年年初开始…

基于springboot+mybatis+mysql+vue房屋租赁管理系统

基于springbootmybatismysqlvue房屋租赁管理系统一、系统介绍二、功能展示1.用户登陆2.管理员端主要功能2.房主角色端主要功能3.租客角色端主要功能三、其它系统一、系统介绍 功能说明&#xff1a; 普通用户角色&#xff1a; 寻找房源功能–提供了两种寻找房源的功能&#xff…

JS日期格式化——数字日期转中文日期(封装函数,dayjs时间格式化YYYY-MM-DD)

JS数字日期转中文日期往期相关文章场景复现封装函数&#xff08;数字日期转中文日期&#xff09;实际应用往期相关文章 文章内容文章链接JS数组对象——根据日期进行排序&#xff0c;按照时间进行升序或降序排序https://blog.csdn.net/XSL_HR/article/details/128579840?spm1…

10分钟完全理解golang context

当前go的各种源码中应该都可以看到context的使用&#xff0c;Context是golang 1.7的引入的核心结构&#xff0c;本质是为了处理go的并发控制问题。本文主要带大家深入理解context如何使用&#xff0c;为什么需要context和context设计原理。 并发控制问题 先来看下并发控制到底…

Unity 3D 使用高度图创建地形|| Unity 3D 使用笔刷绘制地形

Unity 3D 使用高度图创建地形 在 Unity 3D 中编辑地形有两种方法&#xff1a; 通过地形编辑器编辑地形。通过导入一幅预先渲染好的灰度图来快速地为地形建模。 地形上每个点的高度被表示为一个矩阵中的一列值。这个矩阵可以用一个被称为高度图&#xff08;heightmap&#xff0…

Win11关闭Windows Defender实时保护,暂时关闭和永久关闭方法 | Win10怎么永久关闭Windows Defender实时保护

文章目录1. 按2. 暂时关闭Windows Defender实时保护3. 永久关闭实时保护3.1. 方法一&#xff1a;改组策略&#xff08;Windows11实测可以&#xff09;3.2. 方法二&#xff1a;改注册表&#xff08;Windows11实测不行&#xff09;1. 按 开启Windows Defender实时保护有时候会导…

HJ2 计算某字符出现次数

HJ2 计算某字符出现次数1 题目2 解法2.1 count_if 本题代码2.1.1 C STL非更易型算法--count_if介绍2.1.2 C中cin(),cin.get(),cin.getline(),getline()总结&#xff1a;2.2 一般做法3 【扩展】C STL--非更易型算法1 题目 题源链接 描述 写出一个程序&#xff0c;接受一个由字…

【HTTP】浏览器缓存(HTTP缓存)

文章目录一、强制缓存1.1、ExPires1.2、Cache-Control二、协商缓存2.1、last-modified2.2、etag浏览器缓存&#xff08;Browser Caching&#xff09;是为了节约网络的资源加速浏览&#xff0c;浏览器在用户磁盘上对最近请求过的文档进行存储&#xff0c;当访问者再次请求这个页…

在国内 PMP 有多少含金量?

PMP 证书已经在全球206个国家和地区得到认可&#xff0c;据 PMI 官方数据统计&#xff0c;截至2021&#xff0c;全球持有效 PMP 证书人数达110 W&#xff0c;国内占比28.98%&#xff0c;超33 W人次。 第一&#xff0c;PMP证书有什么价值&#xff1f; 01.PMP认证的重要性 PMP是…

Unreal UPROPERTY属性标记宏

BlueprintReadOnly,让该变量可在蓝图中访问。新建一个继承AActor的C类CustomActor,添加int变量TestProperty,并给他加上BlueprintReadOnly标记:这样,就能在蓝图中引用该变量。BlueprintReadWrite,让该变量可以在蓝图中使用以及修改。给TestProperty变量添加BlueprintReadWrite标…

【云原生进阶之容器】第二章Controller Manager原理2.7节--Indexer剖析

7 Indexer Indexer是client-go用来存储资源对象并自带索引功能的本地存储,Reflector从DeltaFIFO中将消费出来的资源对象存储至Indexer。Indexer中的数据与Etcd集群中的数据保持完全一致。client-go可以很方便地从本地存储中读取相应的资源对象数据,而无须每次都从远程Etcd集群…

复现yolov5CPP经验贴

源码&#xff1a; https://github.com/Hexmagic/ONNX-yolov5/blob/master/src/test.cpp 该源码亲测可行&#xff0c;但是还是有一些问题 此处改成False 此处改成自己转换好的onnx模型路径 用神经网络工具&#xff1a; https://github.com/lutzroeder/netron 用该工具可查看输入…

【UE4 第一人称射击游戏】24-添加人工智能的敌人跟随功能

上一篇&#xff1a;【UE4 第一人称射击游戏】23-添加子弹伤害本篇效果&#xff1a;步骤&#xff1a;将 导航网格体边界体积 拖入视口按P键显示区域将导航区域扩大一些如果不想让导航体覆盖上面的区域可以将导航体的高度降低一些打开“SimpleAI”&#xff0c;添加一个“Pawn感应…