OS5.【Linux】基本指令入门(4)
继续介绍一些常见指令 cat more less head tail 管道的特性 一道笔试题
目录
承接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.笔试题

由前面讲过的less知识点,显然选D
更多推荐
所有评论(0)