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编程练习的主要内容,如果未能解决你的问题,请参考以下文章

SHELL编程四剑客练习--grep

shell编程练习

SHELL编程四剑客练习--awk

OpenStack 环境下 SHELL 编程练习(持续更新中)

实验shell编程

shell编程练习