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

原文地址:https://www.cnblogs.com/Zchaowu/p/7668614.html