系统相关
首页 > 系统相关> > 测试工作常用Linux命令-Linux三剑客之grep

测试工作常用Linux命令-Linux三剑客之grep

作者:互联网

grep-global regular expression print-全局正则表达式打印

grep pattern file
grep -i pattern file 忽略大小写
grep -v pattern file  不显示匹配行
grep -o pattern file 只把每个匹配的内容独立的行显示
grep -E pattern file 使用脱产正则表达式
grep -A -B -C pattern file 打印命中数据的上下文
grep pattern -r dir/ 递归搜索
以目前国内最大的社区网站testerhome为例,访问testerhome主页,找出主页中包含的左右url,分别进行访问,如果访问成功会返回状态码200,检查所有访问成功的url并打印出来,若没访问成功就打印ERR加上失败的url
  1. 先访问testerhome主页,利用grep href过滤出所有包含url的内容
    命令:curl -s https://testerhome.com | grep href
    在这里插入图片描述

  2. 从返回的结果中取出url,观察发现所有的url都被包在了双引号之中,那么在利用grep -o命令,加上正则表达式匹配,只打印从http开始到url结束双引号之前的内容
    命令:curl -s https://testerhome.com | grep href | grep -o "http[^\"]*"
    在这里插入图片描述

  3. 从上一步中我们已经取出了完整的url了,现在我们需要对每个url进行访问取值判断

    3.1. 先用curl -I 看看请求返回的头信息内容
    命令:curl -s -I https://testerhome.com/topics/feed
    在这里插入图片描述

    3.2. 访问成功返回200,这时候我们一行一行去访问,再用grep命令匹配200作为判断条件,筛选出成功的url并打印,然后将失败的url加上ERR标记也一起打印出来
    命令:curl -s https://testerhome.com | grep href | grep -o "http[^\"]*" | while read line;do curl -s -I $line | grep 200 && echo $line || echo ERR $line;done

  4. 最终结果展示

在这里插入图片描述

标签:grep,url,pattern,file,Linux,testerhome,curl,三剑客
来源: https://blog.csdn.net/weixin_43291944/article/details/100171339