目录

1.cat

-n选项

-b选项

-s选项

练习

2.more

-n选项

注意事项

3.less

4.head

-n选项

5.tail

-n选项

6.实验题

方法1:创建临时文件

方法2:使用管道"|"

★管道"|"的解释

管道的其他使用场景


承接OS4.【Linux】基本指令入门(3)文章继续介绍一些常见指令

1.cat

现向test.txt写入以下内容(有空行):

123
456
7890

abc


def
ghi

-n选项

cat -n test.txt

作用:对输出的所有行编号(包括空行)

-b选项

如果不想对空行编号,可以使用-b选项

cat -b test.txt

作用:对非空输出行进行编号

-s选项

作用:连续多个空行只保留一个空行(不编号)

cat -s test.txt

练习

题目1:对test.txt的非空行编号,且如果有多个空行只保留一行

解:显然是cat的两个选项的组合 -n和-s

指令答案(两个选项不用区分先后顺序):

cat -sb test.txt
cat -bs test.txt

题目2:对test.txt的每一行都编号,且如果有多个空行只保留一行

解:显然是cat的两个选项的组合 -s和-b

指令答案(两个选项不用区分先后顺序):

cat -ns test.txt
cat -sn test.txt

2.more

准备工作:使用Shell脚本创建大文本,输入以下指令:

cnt=1; while [ $cnt -le 10000 ]; do echo "Hello World! $cnt" ; let cnt++; done > test.txt

(创建10000行) 

nano查看前几行,确保成功生成

使用more指令查看test.txt,按q退出查看

more test.txt

-n选项

作用:查看指定的行数

例如:

more -12 test.txt

注意事项

1.只能按Enter键下翻页,不能上翻页

2.搜索指定字符串使用"/xxx"的形式来搜索

例如输入"/1234"

结果:

3.more默认是向下搜索,如果查找到字符串会停止向下搜索,如果到了文件末尾,不会从头开始查找

★3.less

less相比more来说要好用的多,可以按上下键来分别向上和向下查看

例如使用less指令来查看test.txt,按q退出查看,按空白键向上翻页

less test.txt

和more指令不同,向下搜索字符串使用"/xxx",向上搜索字符串使用"?xxx"

例如"/1234"

和more指令不同的是:搜索字符串的"/xxx"是部分匹配就行

例如"/111"

在上面的基础上使用"?1234"来向上搜索

n:重复前一个搜索(与 / 或 ? 有关)
N:反向重复前一个搜索(与 / 或 ? 有关)

结论:相比cat指令,more和less指令适合查看大文本,如果使用cat指令容易刷屏,不好查,cat指令适合看小文本

4.head

作用:不加任何选项默认查看文本的前10行

例如:

head test.txt

-n选项

作用:设置要查看的行数,例如head -3 test.txt来查看test.txt的前3行

5.tail

相当于前面讲过的head指令,容易推出tail指令的作用:查看文本的最后几行不加任何选项默认查看文本的后10行

例如:

tail test.txt

-n选项

作用:设置要查看的行数,例如tail -3 test.txt来查看test.txt后3行

6.实验题

题目:查看之前生成的test.txt的第5679~第5688行

如果单独使用more或less指令的话,如果文本内部没有显示行数,是很难通过翻页查找的

策略:head和tail联合使用

方法1:创建临时文件

1.截取test.txt的前5688行写入到临时文本tmp.txt中

OS3.【Linux】基本指令入门(2)文章中介绍过了输出重定向符">",将输出重定向到tmp.txt中

head -5688 test.txt > tmp.txt

使用tail指令查看tmp.txt是否成功生成:

2.直接使用tail -10 tmp.txt来查看内容

注:不能使用tail -10 tmp.txt > tmp.txt来使tmp.txt只保留10行!!!在读取的过程中,>会将文件 tmp.txt清空然后写入内容

方法2:使用管道"|"

head -5688 test.txt | tail -10

★管道"|"的解释

head -5688 test.txt | tail -10中“|”级联左侧和右侧,指令的解释:将head -5688 log.txt写入管道文件(入口)中,再用tail -10读管道文件(出口)的结果,即提取文件的前5688行通过管道传递给tail -10

注:当下认为管道文件在内存中

也可以将结果写入result.txt中

head -5688 test.txt | tail -10 >> result.txt

管道的其他使用场景

多个管道

例1:

cat test.txt | head -5688 | tail -10

作用和head -5688 test.txt | tail -10等同

例2:

cat test.txt | head -5688 | tail -10 | wc -l

(wc -l用于统计行数)

管道的结论:管道通常可以支持流水线工作

7.笔试题

来源:2024年淘天集团春招研发岗笔试

由前面讲过的less知识点,显然选D

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐