shell命令為何沒有結果?
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}'
2016-05-30
冒號后面的空格有兩個
2016-03-22
bash csh ksh sh