前言:本篇是 Linux 基本操作篇章的内容!
笔者使用的环境是基于腾讯云服务器:CentOS 7.6 64bit。
学习集:
注:本文涉及文件内容查看或编辑,故有预先准备的测试示例,若读者无测试示例,可参照 第 0 点 目录进行操作生成!
目录索引:
0. 测试使用用例命令
1. 回顾指令意义并提出问题
2. 提出解决问题的思路
3. 实现:文件中指定中间部分行内容输出
3.1 方式一(输出重定向方式)
3.2 方式二(结合管道):简单介绍管道
4. 中间局部内容指定输出
5. 相关文章或系列推荐
0. 测试使用用例命令
- 第一个测试用例:源自《Linux :: 【基础指令篇 :: 文件内容操作:(1)】:: nano 指令 :: 使用自带文件编辑器及简单演示Linux下gcc编译执行可执行程序(仅作了解:会用来创建文件即可)【基本不会用到】》中的第三点:简单演示Linux下gcc编译执行可执行程序【打印 Hello Linux 程序】;
- 第二个测试用例:命令行输入如下指令:
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. 相关文章或系列推荐
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 指令 与 输入重定向、输出重定向、追加重定向在文件内容写入中的简单用法!