挑战:历史命令 — 实验楼

题目

历史命令
介绍
在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 
  1. cut -c 8-
    从第8个字符开始到最后,至于为什么是 8- ,cat data1 数了一下命令开始位置正好是第8位
  2. sort | uniq -c
    sort 默认按字典序排序,uniq去重,这两者经常合用
    -c 参数表示进行计数,并在行首的位置输出该行重复次数
  3. sort -n -r
    -n 表示按数字大小排序(默认字典序)
    -r 表示按照降序排列(默认升序)
  4. head -n -3
    表示前三行的结果
posted @ 2018-09-12 09:32  BrysonChen  阅读(682)  评论(0编辑  收藏  举报