隨筆-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 一凡 閱讀(305) 評論(0)  編輯  收藏 所屬分類: linux
          主站蜘蛛池模板: 资溪县| 保定市| 雅江县| 江油市| 息烽县| 涪陵区| 海宁市| 建平县| 西吉县| 名山县| 卢龙县| 三门县| 白玉县| 越西县| 中阳县| 瑞丽市| 吴忠市| 聂荣县| 贵阳市| 南澳县| 玉门市| 阜康市| 吉木萨尔县| 依安县| 沿河| 甘肃省| 仁怀市| 滨州市| 新竹市| 冕宁县| 东安县| 平潭县| 浦县| 凌源市| 黎平县| 台南市| 密云县| 海伦市| 博爱县| 北海市| 沅江市|