linux统计出现次数top3的url

本文介绍了一种使用Shell脚本统计文本文件中出现频率最高的前三个网址的方法。通过对文件中的网址进行提取、计数和排序,最终输出了出现次数最多的三个网站:Yahoo、搜狐和优快云。

对文件中的以下网址排序,统计出出现次数排名top3的网址。

文件名:

web.txt plaincopy

  1.   
[plain]  view plain copy
  1. http://www.google.com  
  2. http://www.baidu.com  
  3. http://www.sina.com  
  4. http://www.bjtu.edu.cn  
  5. http://www.codeproject.com  
  6. http://www.csdn.com  
  7. http://www.sohu.com  
  8. http://www.yahoo.com  
  9. http://mail.163.com  
  10. http://www.bjtu.edu.cn  
  11. http://www.codeproject.com  
  12. http://www.csdn.com  
  13. http://www.sohu.com  
  14. http://www.yahoo.com  
  15. http://mail.163.com  
  16. http://www.codeproject.com  
  17. http://www.csdn.com  
  18. http://www.sohu.com  
  19. http://www.yahoo.com  
  20. http://mail.163.com  
  21. http://www.qq.com  
  22. http://www.hao123.com  
  23. http://www.163.com  
  24. http://youku.com  
  25. http://taobao/com  
  26. http://www.bjtu.edu.cn  
  27. http://www.codeproject.com  
  28. http://www.csdn.com  
  29. http://www.sohu.com  
  30. http://www.yahoo.com  
  31. http://mail.163.com  
  32. http://www.codeproject.com  
  33. http://www.csdn.com  
  34. http://www.sohu.com  
  35. http://www.yahoo.com  
  36. http://mail.163.com  
  37. http://www.qq.com  
  38. http://www.hao123.com  
  39. http://www.163.com  
  40. http://youku.com  
  41. http://taobao/com  

shell脚本如下:

#!/bin/bash
foo()
{
    if [ $# -ne 1 ];
    then
       exit -1
    fi
    filename=$1
    egrep -o "http://[a-zA-Z0-9.]+\.[a-zA-Z]{2,3}" $filename | \
    awk '{ count[$0]++ }
    END{
      printf("%-30s%s\n","winsit","count");
      for(ind in count)
      {
          printf("%-30s%d\n",ind,count[ind]);
      }
    }'
}
foo web.txt | sort -nrk 2 | head -3 >websort2.txt   #sort命令  -n:【纯数字】类型  -r :倒序  -k:指定对哪个Filed(字段)进行排序

输出websort2.txt内容如下:

http://www.yahoo.com          5
http://www.sohu.com           5
http://www.csdn.com           5


<think>嗯,用户问的是Linux环境下开发和测试常用的命令列表。首先,我需要回忆一下常见的命令,然后根据用户提供的三个引用内容来补充。引用1提到了常用命令可能被忘记,需要收集,比如CentOS系统的基础命令。引用2提到了apt-get安装软件包,但CentOS用的是yum,不过用户可能需要通用的包管理命令。引用3提到用户在学习Linux过程中的经验,可能需要基础操作和开发测试相关的命令。 首先,基础操作命令肯定是必须的,比如ls、cd、pwd这些。然后是文件操作,如cp、mv、rm、cat、grep,这些在开发和测试中经常用。权限管理方面,chmod和chown也是关键,尤其是在部署的时候。 接下来是进程管理,比如ps、kill、top,这些对于测试时监控程序很有用。网络相关的命令如curl、wget、netstat、ssh,开发中经常需要下载资源或调试网络问题。 包管理方面,CentOS用yum,Ubuntu用apt,所以需要都提到。开发工具如gcc、make、git这些也是必须的,编译代码和版本控制离不开它们。测试相关的命令如diff、md5sum、time,用来比较文件差异,校验文件,测时间。 日志查看的话,tail和grep的组合很常见,比如实时查看日志并过滤关键字。用户可能还关心如何组合命令,比如管道和重定向,这样可以提高效率。 最后,根据用户提供的引用,引用1提到常用命令需要收集,引用2提到包管理,引用3提到学习过程。所以需要把这些内容整合进去,确保覆盖开发测试的各个方面,同时保持结构清晰,分门别类列出,方便用户查阅。可能还需要提醒用户不同发行版的差异,比如CentOS和Ubuntu的包管理不同,这样用户不会混淆。然后生成相关问题,帮助用户进一步学习,比如如何查看端口占用,如何搜索文件内容,这些都是在实际工作中常见的问题。</think>### Linux开发测试常用命令列表 #### 一、基础操作 1. **文件操作** - `ls -l` 查看目录详情(权限、时间等) - `cp -r src_dir dest_dir` 递归复制文件夹 - `mv old_name new_name` 重命名或移动文件 - `rm -rf dir_name` 强制删除目录(慎用) - `cat file.txt` 查看文件内容 - `grep "keyword" file.txt` 搜索文件内容[^1] 2. **权限管理** - `chmod 755 script.sh` 修改文件权限(用户可执行) - `chown user:group file` 修改文件所有者[^2] #### 二、开发与调试 1. **进程管理** - `ps -ef | grep java` 查看Java进程 - `kill -9 PID` 强制终止进程 - `top` 实时查看系统资源占用 2. **网络工具** - `curl http://example.com` 发送HTTP请求 - `wget http://example.com/file.zip` 下载文件 - `netstat -tuln` 查看端口占用情况[^3] #### 三、包管理与环境 1. **安装依赖** - CentOS: `yum install package_name` - Ubuntu: `apt-get install package_name`[^2] 2. **开发工具** - `gcc -o program source.c` 编译C程序 - `make` 执行Makefile构建 - `git clone repo_url` 克隆代码仓库 #### 四、测试相关 1. **文件对比与校验** - `diff file1 file2` 比较文件差异 - `md5sum file` 计算文件MD5校验值 2. **性能测试** - `time ./script.sh` 测量脚本执行时间 - `stress --cpu 4` 模拟CPU负载测试 #### 五、日志与排查 1. **日志查看** - `tail -f /var/log/app.log` 实时跟踪日志 - `grep "ERROR" *.log` 搜索多个日志文件中的错误 2. **组合命令示例** ```bash # 统计某接口的请求次数 cat access.log | grep "/api/login" | wc -l ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值