Linux小操作:如何读取文件中间的部分内容

434 阅读1分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第17天,点击查看活动详情


如何读取文件中间的部分内容

例子:现在file.txt文件中有1w行内容,如何读取第1001行到1010行内容

知道了head和tail指令之后,我们可以把file.txt文件中的前1010行数据存入一个临时文件tmp.txt中,然后使用tail指令把tmp.txt文件的后10行进行打印输出

那么如何存到临时文件中呢?

使用重定向>

image-20220227105049127

>:输出重定向,

head -1010 file.txt > tmp.txt

含义是:将本来应该输出到标准输出(屏幕)上的内容,输出重定向到tmp.txt文件中

如果后面的文件不存在,就会创建新文件

image-20220313143506447


image-20220313143649075


追加重定向: >>

image-20220313143804010


输入重定向<

cat后面不跟文件,默认从键盘(标准输入中)读取内容

image-20220313144203462

把文件的内容作为原始数据,传给对应的程序,让该程序处理该数据


输出重定向+管道

上面的写法有些麻烦,我们需要先创建临时文件tmp.txt,我们可以使用命令行管道进行操作

管道:传输某种资源的渠道,计算机的资源就是数据

管道的表示方式:| 4

管道左边:接受产生的数据 管道右边:读取数据

image-20220227105722690


写法:

head -1010 file.txt | tail -10

image-20220227105951911

使用管道的时候,默认隐式的发生了重定向 ,本来head默认显示到显示器中,tail本来要从其它文件读取的,现在变成从管道中读取数据


举例:(简单讲解重定向和管道)

有一个文件共有100行内容,请取出第50行内容<br>
seq 1 100 > test # 生成1到100的序列装入test
方法1 head -n50 test > tmp #将前50行装入临时文件tmp
tail -n1 tmp #得到中建行
方法2 head -n50 test | tail -n1