명령어를 실행하고, 실행 결과에서, 특정 문자열을 찾는 스크립트 입니다.
앞뒤로 출력할 수를 지정할 수 있습니다.
import re import sys import subprocess numArgs = len(sys.argv) if numArgs < 3: print sys.argv,'cmd','regex','before','after' sys.exit(2) cmd = sys.argv[1] regex = sys.argv[2] before = numArgs > 3 and int(sys.argv[3]) or 0 after = numArgs > 4 and int(sys.argv[3]) or 0 p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) arr = [] afterline = 0 while True: out = p.stdout.readline() if not out: break if afterline > 0: print out afterline -= 1 pass arr.append(out) if re.match(regex, out): print "##MATCH##" if before > 0: start = len(arr) - before - 1 if start < 0: start = 0 for i in range(start, len(arr)): print arr[i] afterline = after else: print out arr=[]
'Programming > Python' 카테고리의 다른 글
[python] LCD 디스플레이(LCD Display) - 숫자를 문자로, 문자를 리스트로 (0) | 2015.10.31 |
---|---|
[python] 여행(The Trip) - round (0) | 2015.10.28 |
[python] 지뢰 찾기 (Minesweeper) - 이중 배열 (0) | 2015.10.27 |
[python] 3n+1 문제 (The 3n+1 Problem) - 파일 읽기 (0) | 2015.10.26 |
[python] 파이썬 설치하기 (0) | 2013.09.14 |
댓글