shell编程练习
Posted 张超五
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell编程练习相关的知识,希望对你有一定的参考价值。
1.遍历指定目录下的所有文件和文件夹
2.有一个Ip文件,每一个ip占一行,找出出现次数最多的前三个ip
sort ip.txt | uniq -c | sort -rn | head -3
uniq命令:用于删除或统计重复行,要和sort命令结合使用
3.有一个Ip文件,每一个ip占一行,找出出现次数超过3次的ip
4.有两个文件分别写有许多ip,1.txt,2.txt,每行一个ip,ip可能会重复出现
(1)分别求出每个ip文件的ip数(不同的ip数)
sort -u 1.txt | wc -l
sort -u 2.txt | wc -l
(2)求出两个文件的ip数(不同的ip数)
sort -u 1.txt 2.txt | wc -l
(3)出现在1.txt却没有出现在2.txt的ip
sort -u > a.txt
sort -u > b.txt
diff a.txt b.txt | grep \'<\' | awk \'{print $2}\'
5.有一个文件,每行格式为 ip username
(1)统计每个用户名出现的次数,和统计每个用户对应的ip数
1.统计每个用户名出现的次数
awk \'{print $2}\' 1.txt > name.txt //先把名字列提出到一个新文件name.txt中
uniq -c name name.txt //再使用uniq命令对name.txt进行重复行统计
2.统计每个用户对应的ip数
sort -u 1.txt | awk \'{print $2}\' > name1.txt //先对原ip文件进行Ip和用户名结合去重,并把结果的名字一列写到新文件name1.txt中
sort name1.txt | uniq -c //对name1.txt进行排序,然后运用uniq即可得出结果
6.给出一个文本 a.txt:比如
http://aaa.com
http://bbb.com
http://bbb.com
http://bbb.com
http://ccc.com
http://ccc.com
让写 shell 统计,最后输出结果:
aaa 1
ccc 2
bbb 3
要求结果还要排序
答案:cut -c8- addr.txt | cut -d\'.\' -f1 | sort | uniq -c
以上是关于shell编程练习的主要内容,如果未能解决你的问题,请参考以下文章