面试题|Linux命令经典面试题(统计文件中出现次数最多的前10个单词)


文章目录

  • 一、统计文件中出现次数最多的前10个单词
  • 二、linux文件搜索关键字并显示前后10行
  • 三、cat、grep、sed查看文件任意几行的数据

一、统计文件中出现次数最多的前10个单词 使用linux命令或者shell实现:文件words存放英文单词,格式为每行一个英文单词(单词可以重复),统计这个文件中出现次数最多的前10个单词。
cat words.txt | sort | uniq -c | sort -k1,1nr | head -10
主要考察对sort、uniq命令的使用,相关解释如下,命令及参数的详细说明请自行通过man查看,简单介绍下以上指令各部分的功能:

sort: 对单词进行排序
uniq -c: 显示唯一的行,并在每行行首加上本行在文件中出现的次数
sort -k1,1nr: 按照第一个字段,数值排序,且为逆序
head -10: 取前10行数据
二、linux文件搜索关键字并显示前后10行
cat test.log | grep ‘XXX’ -C 10
三、cat、grep、sed查看文件任意几行的数据 使用grep命令:
grep -C 5 foo file 显示file文件里匹配foo字串那行以及上下5行
grep -B 5 foo file 显示foo及前5行
grep -A 5 foo file 显示foo及后5行
使用cat与tail、head的组合命令
1、查看最后1000行的数据
cat filename | tail -n 1000
2、查看1000到3000行的数据
cat filename | head -n 3000 | tail -n +1000
3、查看、打印文件所有内容
cat filename
4、打印文件最后1000行的数据
cat filename | tail -n 1000
5、打印文件第1000行开始以后的内容
cat filename | tail -n +1000
6、打印前1000的内容
cat filename | head -n 1000
使用sed命令:sed -n “开始行,结束行p” 文件名
显示1000到300行的数据
sed -n ‘1000,3000p’ filename
tail 和 head 加上 -n参数后 都代表输出到指定行数,tail 是指定行数到结尾,head是开头到指定行数。
【面试题|Linux命令经典面试题(统计文件中出现次数最多的前10个单词)】+数字 代表正数第几行, -数字代表倒数第几行。

    推荐阅读