测试工作常用Linux命令-Linux三剑客之grep
作者:互联网
grep-global regular expression print-全局正则表达式打印
- 先列举出测试工作常用的grep命令和意义:
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/ 递归搜索
- 下面以一个检查首页是否有死链的案例需求来展示grep的匹配用法
以目前国内最大的社区网站testerhome为例,访问testerhome主页,找出主页中包含的左右url,分别进行访问,如果访问成功会返回状态码200,检查所有访问成功的url并打印出来,若没访问成功就打印ERR加上失败的url
-
先访问testerhome主页,利用grep href过滤出所有包含url的内容
命令:curl -s https://testerhome.com | grep href
-
从返回的结果中取出url,观察发现所有的url都被包在了双引号之中,那么在利用grep -o命令,加上正则表达式匹配,只打印从http开始到url结束双引号之前的内容
命令:curl -s https://testerhome.com | grep href | grep -o "http[^\"]*"
-
从上一步中我们已经取出了完整的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
-
最终结果展示
标签:grep,url,pattern,file,Linux,testerhome,curl,三剑客 来源: https://blog.csdn.net/weixin_43291944/article/details/100171339