挑战:历史命令 — 实验楼
题目
历史命令
介绍
在linux中,对于文本的处理和分析是极为重要的,现在有一个文件叫做data1,同学们可以在这里下载,
wget http://labfile.oss.aliyuncs.com/courses/1/data1
里面记录是一些命令的记录,现在需要你从里面找出出现频率次数前3的命令并保存在/home/shiyanlou/result。
目标
处理文本data
将结果写入result
结果包含次数和命令,如“100 ls”
提示
cut截取(-c 8- 明白含义吗)
uniq -dc去重
sort 的参数选择-k1 -n -r
答案类似于
cat data|....|....|.... > /home/shiyanlou/result
来源
2016年百度校招面试题
答案
cat data1 | cut -c 8- | sort | uniq -c | sort -n -r | head -n -3 > /home/shiyanlou/result
- cut -c 8-
从第8个字符开始到最后,至于为什么是 8- ,cat data1 数了一下命令开始位置正好是第8位 - sort | uniq -c
sort 默认按字典序排序,uniq去重,这两者经常合用
-c 参数表示进行计数,并在行首的位置输出该行重复次数 - sort -n -r
-n 表示按数字大小排序(默认字典序)
-r 表示按照降序排列(默认升序) - head -n -3
表示前三行的结果