sudo sh check_http_log.sh ********HTTP状态码分析统计脚本******** http状态码为[100+]: 0 http状态码为[200+]: 269 http状态码为[300+]: 10 http状态码为[400+]: 6804 http状态码为[500+]: 0 http总请求: 7083 (*@ο@*) 哇~脚本处理结束! http状态为[404]: 6741 http状态为[403]: 0 总共请求次数: 7083 sudo sh check_http_log.sh|grep -ioE "\[[1-5][0]{2}\+\]\:[[:blank:]]+[0-9]+"|awk -F"[ ]+" '{print $2}'
这条命令我想输出脚本执行后的具体的请求次数,但发现什么都没有,主要原因是在于[0-9]+这地方,根据我的理解,这么写应该是有结果,但现在什么都没输出。
如果我这么执行,则会输出结果:
sudo sh check_http_log.sh|grep -ioE "\[[1-5][0]{2}\+\]\:[[:blank:]]+"|awk -F"[ ]+" '{print $1}' [100+]: [200+]: [300+]: [400+]: [500+]:
请问如何才能拿到后面的具体数字,比如上面脚本文件输出的是
http状态码为[100+]: 0
http状态码为[200+]: 269
http状态码为[300+]: 10
http状态码为[400+]: 6804
http状态码为[500+]: 0
而我希望,再次拿到 :
0
269
10
6804
0
还有一个问题,我单独执行下面这条命令,是可以拿到数据的:
echo "http状态码为[200+]: 266"|grep -ioE "\[[1-5][0]{2}\+\]\:[[:blank:]]+[0-9]+"|awk -F"[ ]+" '{print $2}' 266
结果是266,是我希望的。
为什么,执行开始说的这条命令(即下面的命令)不行呢?
sudo sh check_http_log.sh|grep -ioE "\[[1-5][0]{2}\+\]\:[[:blank:]]+[0-9]+"|awk -F"[ ]+" '{print $2}'
冒号后面的空格有两个
bash csh ksh sh