Linux :: 文件内容操作【6】:文件中指定中间部分(第多少行 到 第多少行)行内容输出 及 初步认识管道

本文介绍了在Linux系统中,如何通过head和tail命令结合输出重定向或管道来提取文件内容的中间部分,如第50~75行。首先,通过head命令获取前75行并保存至临时文件,然后使用tail命令显示临时文件的后26行。另外,也展示了使用管道直接连接head和tail命令来实现同样功能,无需临时文件。
摘要由CSDN通过智能技术生成

前言:本篇是 Linux 基本操作篇章的内容!
笔者使用的环境是基于腾讯云服务器:CentOS 7.6 64bit。


学习集:


注:本文涉及文件内容查看或编辑,故有预先准备的测试示例,若读者无测试示例,可参照 第 0 点 目录进行操作生成!


目录索引:
0. 测试使用用例命令
1. 回顾指令意义并提出问题
2. 提出解决问题的思路
3. 实现:文件中指定中间部分行内容输出
3.1 方式一(输出重定向方式)
3.2 方式二(结合管道):简单介绍管道
4. 中间局部内容指定输出
5. 相关文章或系列推荐


0. 测试使用用例命令

count=0; while [ $count -le 100 ]; do echo "hello ${count}"; let count++; done > file.txt
  • 以上命令用于生成 hello x {x:1~100}生成100行数据并写入文件!【注:不要修改命令格式!写法以后会说明!】

1. 回顾指令意义并提出问题

回顾指令:

  • 「cat / tac」:正序 / 逆序 查看目标文件的全部内容!
  • 「more / less」:查看目标文件的部分或全部内容!
  • 「head / tail」:查看前后 n 行内容 | 指定查看文件的部分内容!

提出问题:
我们可以通过已知指令查看前后 n 行内容,那如果在一个数据量较大文件中(超过1000行),我想查看:第 50 ~ 75 行的内容该怎么办?


2. 提出解决问题的思路

总体思路:我们可以先查出前 75 行内容,再查看 75 行内容中的后 26 行内容。注意:第 50 ~ 75 行的内容:属于区间的左闭右闭区间,区间作差需 +1!

方式一(输出重定向方式):我们可以通过:head -75 [文件]:查出前 75 行内容,通过输出重定向存入临时文件,在去临时文件中指定输出 tail -26 [临时文件]

方式二(结合管道):该方法将引入一个管道的概念,简单来说,管道的作用就是将管道左边的指令执行结果交给管道右边的指令继续执行!


3. 实现:文件中指定中间部分行内容输出

3.1 方式一(输出重定向方式)

方式一(输出重定向方式):我们可以通过:head -75 [文件]:查出前 75 行内容,通过输出重定向存入临时文件,在去临时文件中指定输出 tail -26 [临时文件]【注:实现形式不唯一!】

/* 1. 先将前 head + 输出重定向把 75 行内容输出到 temp.txt 文件中 */
[Mortal@VM-12-16-centos test_file]$ head -75 file.txt > temp.txt
[Mortal@VM-12-16-centos test_file]$ ll
total 8
-rw-rw-r-- 1 Mortal Mortal 900 Jun  5 21:14 file.txt
-rw-rw-r-- 1 Mortal Mortal 665 Jun  5 21:15 temp.txt

/* 2. 再使用 tail 指令输出 temp.txt 文件中的后 26 行内容 */
[Mortal@VM-12-16-centos test_file]$ tail -26 temp.txt
hello 49
hello 50
hello 51
hello 52
hello 53
hello 54
hello 55
hello 56
hello 57
hello 58
hello 59
/* 此处笔者删除了部分内容!防止文章篇幅过长! */


3.2 方式二(结合管道):简单介绍管道

  • 管道「 | 」:简单来说,管道的作用就是将管道左边的指令执行结果交给管道右边的指令继续执行!【目前只需要会用!以后会详解!】

  • 管道:可以批量化流水式处理数据!在以下过程中管道会生成管道文件!但是它是内存级文件,没有在磁盘上!

[Mortal@VM-12-16-centos test_file]$ ls
file.txt  temp.txt  tmp.txt
[Mortal@VM-12-16-centos test_file]$ rm temp.txt tmp.txt 
[Mortal@VM-12-16-centos test_file]$ ls
file.txt
[Mortal@VM-12-16-centos test_file]$ head -75 file.txt | tail -26 
hello 49
hello 50
hello 51
hello 52
hello 53
hello 54
hello 55
hello 56
hello 57
hello 58
hello 59
hello 60
hello 61
hello 62
hello 63
hello 64
hello 65
/* 此处笔者删除了部分内容!防止文章篇幅过长! */

在这里插入图片描述


4. 相关文章或系列推荐

1. Linux 学习目录合集


2. Linux :: 【基础指令篇 :: 文件内容操作:(1)】:: nano 指令 :: 使用自带文件编辑器及简单演示Linux下gcc编译执行可执行程序(仅作了解:会用来创建文件即可)【基本不会用到】
3. Linux :: 【基础指令篇 :: 文件内容操作:(2)】:: cat / tac 指令 :: 正序 / 逆序 查看目标文件的全部内容 及 cat 的补充用法:从标准输入读取内容并输出
4.Linux :: 【基础指令篇 :: 文件内容操作:(3)】:: more / less 指令 :: 查看目标文件的部分或全部内容 | 指定查看前 n 行内容【二者相比推荐使用 less 】
5. Linux :: 【基础指令篇 :: 文件内容操作:(4)】:: head / tail 指令 :: 指定查看文件的部分内容 | 查看前 n 行内容
6. Linux :: 文件内容操作【5】:echo 指令 与 输入重定向、输出重定向、追加重定向在文件内容写入中的简单用法!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NPC的白话文谈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值