隨筆-204  評論-90  文章-8  trackbacks-0
          # -*- coding: utf-8 -*-
          #
          !/usr/bin/python

          import re
          import io
          import sys

          # obj = re.compile(r'(?P<ip>.*?)- - \[(?P<time>.*?)\] "(?P<request>.*?)" (?P<status>.*?) (?P<bytes>.*?) "(?P<referer>.*?)" "(?P<ua>.*?)"')
          #
           example:xxxx"id":2640914,"orderId":144115188137125591xxxx"state":10xxxxx"
          # 日志整行都需要匹配,需要用的用具體正則匹配,如(\d{7}),不需要的用(.*)匹配,總之所有需要或不需要部分都用()括起來
          obj = re.compile(r'(.*"id":)(\d{7})(.*"orderId":)(\d{18})(.*"state":)(\d{2})(.*)')

          def load_log(path):
          # 讀取文件
              with io.open(path, mode="r", encoding="utf-8") as f:
                  for line in f:
                      line = line.strip()
                      parse(line)

          def stdin():
          # 讀取管道輸入
              for line in sys.stdin:
                  parse(line)

          def parse(line):
          # 解析單行nginx日志
              try:
                  result = obj.match(line)
                  print(result.group(2,4,6))
              except:
                  pass

          if __name__ == '__main__':
              # load_log("/tmp/227.log")
              stdin()
          posted on 2020-02-29 02:10 一凡 閱讀(304) 評論(0)  編輯  收藏 所屬分類: linux
          <2020年2月>
          2627282930311
          2345678
          9101112131415
          16171819202122
          23242526272829
          1234567

          常用鏈接

          留言簿(9)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          相冊

          學習資源

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 渝中区| 黄陵县| 彰化市| 安多县| 星子县| 彩票| 泰州市| 福贡县| 镇坪县| 观塘区| 洛宁县| 柳江县| 施甸县| 浪卡子县| 阿勒泰市| 车致| 叶城县| 织金县| 聊城市| 响水县| 扎赉特旗| 承德县| 班戈县| 邵阳市| 南城县| 裕民县| 曲水县| 突泉县| 玉溪市| 瓦房店市| 临湘市| 宁河县| 德安县| 易门县| 布尔津县| 根河市| 肥东县| 鄱阳县| 鹤山市| 湖北省| 丘北县|