查詢子串

小亮520cl發表於2015-03-23
[root@gc1 ~]# grep 'request url:http:' text.sh| sed 's/^.*url:http:\/\///g'|awk -F ":" '{print $1}'|uniq -c’
---先過濾掉沒帶子串的行
      6 132.77.49.23
      8 132.77.49.24
或方法:
[root@gc1 ~]# grep 'request url:http:' text.sh | sed 's/^.*url:http:\/\///g;s/:8003.*$//g'|uniq -c
-----將子串前面後面的全部替換為空
      6 132.77.49.23
      8 132.77.49.24


request url:http: 需要查詢的子串的前面的一些關鍵字(這針對的是子串是變換的,如果子串固定,可直接寫子串)

^.*url:http:\/\/   將子串前面的字元全部替換為空,\是轉義,當有元字元時使用,不復雜可不用

awk -F ":" '{print $1}'   :將子串後面的第一個設定為區域分割符 列印出第一個域(即子串)




總結成萬能的寫法即是:
[root@gc1 ~]# grep '子串' text.sh | sed 's/^.*子串前面一段//g;s/子串後面一段.*$//g'|uniq -c

補充簡單方法://和:8003分別是子串前後的
[rootgc1:/root/scripts]$ more file|grep -oP "(?<=//).*(?=:8003.*)"|sort -nr
132.77.49.24
132.77.49.23



主要應用於生產系統上比較有規律的日誌啥的,如下(要查詢的子串就是ip,IP在變):
[375][threadname:http-8003-Processor1700][level:INFO][time:2015-03-09 09:56:36,820]request url:http://132.77.49.23:8003/OSN/BipRecei
ve/1100 
[375][threadname:pool-1-thread-19732][level:INFO][time:2015-03-09 09:56:36,005]ProcessHandler Class:com.unicom.tradeswitch.sn.Proces
[375][threadname:pool-1-thread-19732][level:INFO][time:2015-03-09 09:56:36,005]conv_id:UPAYpsns1103021201503091005414806520150309095
635815 session:com.unicom.tradeswitch.sn.util.SNSession@e11c8b 
[375][threadname:http-8003-Processor1700][level:INFO][time:2015-03-09 09:56:36,820]request url:
ve/1100 
[375][threadname:pool-1-thread-19732][level:INFO][time:2015-03-09 09:56:36,005]ProcessHandler Class:com.unicom.tradeswitch.sn.Proces
[375][threadname:pool-1-thread-19732][level:INFO][time:2015-03-09 09:56:36,005]conv_id:UPAYpsns1103021201503091005414806520150309095
635815 session:com.unicom.tradeswitch.sn.util.SNSession@e11c8b 
[375][threadname:http-8003-Processor1700][level:INFO][time:2015-03-09 09:56:36,820]request url:
ve/1100 
[375][threadname:pool-1-thread-19732][level:INFO][time:2015-03-09 09:56:36,005]ProcessHandler Class:com.unicom.tradeswitch.sn.Proces
[375][threadname:pool-1-thread-19732][level:INFO][time:2015-03-09 09:56:36,005]conv_id:UPAYpsns1103021201503091005414806520150309095
635815 session:com.unicom.tradeswitch.sn.util.SNSession@e11c8b 
[375][threadname:http-8003-Processor1700][level:INFO][time:2015-03-09 09:56:36,820]request url:http://132.77.49.24:8003/OSN/BipRecei
ve/1100 
[375][threadname:pool-1-thread-19732][level:INFO][time:2015-03-09 09:56:36,005]ProcessHandler Class:com.unicom.tradeswitch.sn.Proces
[375][threadname:pool-1-thread-19732][level:INFO][time:2015-03-09 09:56:36,005]conv_id:UPAYpsns1103021201503091005414806520150309095
635815 session:com.unicom.tradeswitch.sn.util.SNSession@e11c8b 
。。。。。
。。。。。
。。。。。
。。。。。





來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29096438/viewspace-1470752/,如需轉載,請註明出處,否則將追究法律責任。

相關文章