Linux基础入门(五)--学习笔记-历史命令

来源:互联网 发布:淘宝店banner尺寸 编辑:程序博客网 时间:2024/05/22 09:14

介绍

在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-| cut -d ' ' -f 1| sort | uniq -dc| sort -t ' ' -k1 -n -r| head -3 > /home/shiyanlou/result

第二个:

cat data1| cut -c 8-| sort | uniq -dc| sort -t ' ' -k1 -n -r| head -n -3 > /home/shiyanlou/result

首先解析一下 cut -c 8- , 这个是 cut 命令,参数 -c 8- 表示从 第8 字符开始到最后,注意一下cut 的主要参数:
主要参数
-b :以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志。
-c :以字符为单位进行分割。
-d :自定义分隔符,默认为制表符。
-f :与-d一起使用,指定显示哪个区域。
-n :取消分割多字节字符。仅和 -b 标志一起使用。如果字符的最后一个字节落在由 -b 标志的 List 参数指示的
范围之内,该字符将被写出;否则,该字符将被排除。
至于为什么是 8- ,cat data1 数了一下命令开始位置正好是第8位。

然后第一个答案比第二个答案多了一个 cut -d ’ ’ -f 1, 这里涉及到了cut 的另外一个命令,以空格为分隔符,选取第一个域,这样,第一个命令和其他的路径等分开了。这种答案也就是指考虑第一个命令,后面的差异不管。

然后就是 sort | uniq -dc 这里涉及到两个命令, uniq命令可以去除排序过的文件中的重复行,因此uniq经常和sort合用。也就是说,为了使uniq起作用,所有的重复行必须是相邻的。前两天偷懒,没有做笔记,下面是uniq命令的介绍(借鉴博客:linux sort,uniq,cut ,wc 命令)

uniq [-icu] -i :忽略大小写字符的不同; -c :进行计数 -u :只显示唯一的行

testfile的内容如下:
hello
world
friend
hello
world
hello

使用uniq 去重,没有效果:
uniq testfile
hello
world
friend
hello
world
hello

排序文件,默认是去重
cat words | sort |uniq
friend
hello
world

排序之后删除了重复行,同时在行首位置输出该行重复的次数
sort testfile | uniq -c
1 friend
3 hello
2 world

仅显示存在重复的行,并在行首显示该行重复的次数
sort testfile | uniq -dc
3 hello
2 world

仅显示不重复的行
sort testfile | uniq -u
friend

然后就是 sort -t ’ ’ -k1 -n -r 这个就是重新根据去重后的数量排序的命令。参数的具体含义是-k 1 按照第一个区域排序, -n 使用纯数字排序,-r 是反向排序。
其余命令如下:

选项 参数 -f 忽略大小写的差异,例如 A 与 a 视为编码相同 -b 忽略最前面的空格符部分 -M 以月份的名字来排序,例如 JAN, DEC 等等的排序方法 -n 使用『纯数字』进行排序(默认是以文字型态来排序的) -r 反向排序 -u 就是 uniq ,相同的数据中,仅出现一行代表 -t 分隔符,默认是用 [tab] 键来分隔 -k 以那个区间 (field) 来进行排序的意思

最后 head -n -3 或者 head -3 输出前三个,貌似不加-n 的参数影响不大。通过’>’ 从输出端 重定向到 文件 /home/shiyanlou/result

如果从整体上,所有命令的角度考虑,第二个答案是对的,也是实验可以通过的,如果只是考虑第一个命令,那第一种答案是对的。

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 花施肥施多了怎么办 玉米被化肥烧了怎么办 撒施复合肥没有充分融化怎么办 绿箩化肥施多了怎么办 辣椒化肥施多了怎么办? 化肥施多了烧苗怎么办 绿植施肥施多了怎么办 盆栽肥料放多了怎么办 三环复合肥怎么办啊 母猪下崽后不吃食怎么办 猪自配料料槽不下怎么办 美甲边缘起翘怎么办 猪粪流到鱼塘里鱼死了怎么办啊 在基本农田建有机肥厂怎么办 有机肥厂的环评怎么办 织玻璃纤维网布环评怎么办 吃了受潮的奶粉怎么办 喝了受潮的奶粉怎么办 刚买的奶粉受潮怎么办 羊不小心吃了化肥怎么办 阿胶粉结成块了怎么办 半桶奶粉受潮了怎么办 眉粉受潮了结块怎么办 刚买的奶粉结块怎么办 袋装白糖成坨了怎么办 一袋子白糖硬了怎么办 粉饼上有一层油怎么办 葡萄后期氮肥施用过多怎么办 没洗的菜吃了怎么办 闻了汽油味头晕怎么办 碰到绿萝的汁液怎么办 吃了带农药水果怎么办 开槽模切一体机模切时开槽怎么办 柔版印刷走纸歪斜怎么办 美团外卖一天8单怎么办 单位显示器丢了怎么办员工赔 纸板板门起泡了怎么办 卖家要我开出质量问题证明怎么办 闲鱼买到的商品不符合描述怎么办 寄出去的东西碎了怎么办 闲鱼快递损坏了怎么办