shell脚本命令编写面试题目
来源:互联网 发布:mac如何创建快捷方式 编辑:程序博客网 时间:2024/05/16 09:10
PS:当时没有做出来,前段时间我再次学习shell脚本的时候想到了一种方法可以求解,但是感觉有点麻烦。在这里请教,各位对于这道题目有什么好的解法?
解法:
以下是我自己想的解法,感觉不完美,拿出来大家给瞧瞧,望多提一些意见!
假设文件中的IP是这样的,ip_input:
219.217.49.14
175.43.4.87
87.48.98.1
59.73.38.25
219.217.50.14
59.92.48.32
219.217.49.14
59.72.38.142
59.73.38.25
219.217.49.14
我们这里一步一步来
1, sort ip_input
首先使用sort命令排序,这样相同的IP地址则可以排在一起,这步我是为了接下来使用命令uniq。因为uniq命令要求是使相邻的行唯一,如果相同行之间存在其它信息,命令不会使结果“唯一”!
输出结果为:
175.43.4.87
219.217.49.14
219.217.49.14
219.217.49.14
219.217.50.14
59.72.38.142
59.73.38.25
59.73.38.25
59.92.48.32
87.48.98.1
2, sort ip_input | uniq -c
这里解释一下uniq -c 选项。它的作用是将重复行去掉并且在每行的前面添加此行重复的次数,下一步则对此结果进行排序则可以找到登录次数最多的IP记录以及登录次数。
输出结果为:
1 175.43.4.87
3 219.217.49.14
1 219.217.50.14
1 59.72.38.142
2 59.73.38.25
1 59.92.48.32
1 87.48.98.1
(在第一个出现次数之前会有很多空格,这是怎么回事呢。。。)
3, sort ip_input | uniq -c | sort -r > tmp
sort命令的默认排序方式是升序,使用 -r 选项逆序排序结果,则出现次数最多的IP则排在了第一行,并将结果保存在tmp文件当中。
4, sed -n '1p' tmp && rm -f tmp
这里的sed -n 用于将文件tmp的第一行做析取操作,此时输出结果为:
3 219.217.49.14
IP 219.217.49.14 出现的次数最多,为 3 次。
PS:在结果中,第一个数字为此IP记录在文件当中出现的次数,这里我本不想将3输出,不过我没有太好的办法解决。当然办法也是有的,不过感觉很笨拙。希望各位多提一些好的解决方案!!!
-》cat ip_input | uniq -c | sort | tail -1 | awk -f '{print $2}'
-》
- shell脚本命令编写面试题目
- 复制命令的Shell脚本编写示例
- 9个实战及面试常用Shell脚本编写
- Shell常见面试题目
- shell经典面试题目
- shell面试题目
- shell面试题目
- 使用Bash编写Linux Shell脚本-7.复合命令
- linux shell脚本编写必须会的字符串截取命令
- shell脚本编写技巧
- 编写shell脚本
- 编写shell脚本
- 如何编写shell 脚本
- shell脚本的编写
- shell脚本编写技巧
- shell脚本编写技巧
- shell脚本编写
- 如何编写shell脚本
- 初学接触AJAX
- perl 5.10出现Can't locate Net/Server/Fork.pm
- 多重继承及虚继承中对象内存的分布
- jstl标签——核心标签(一)
- 迷茫还是什么?
- shell脚本命令编写面试题目
- OAUTH协议简介及其使用场景介绍
- 数组快速移位
- 大型门户网站的商业计划书(包括技术解决方案)
- 类模板
- 字符编码:ASCII,Unicode,UTF-8,GB2312
- VC++学习笔记3--------------设置static text背景为透明的办法
- git reset
- git小技巧