1
여러 파일에서 여러 정규 표현식을 "grep"하고 싶습니다.Python : 여러 파일에서 여러 개의 paterns를 검색하는 방법
dic = open('regex.dic')
rex = []
for l in iter(dic):
if not l.startswith('#'):
rex.append('^.*%s.*$' % l.strip())
rex = '|'.join(rex)
debug('rex='+rex)
global regex
regex = re.compile(rex, re.IGNORECASE|re.MULTILINE)
dic.close()
가 그럼 난 이렇게 내 파일을 확인하십시오 :
with open(fn, 'r') as f: data = f.readlines()
for i, line in enumerate(data):
if len(line) <= 512: #Sanity check
if regex.search(line):
if not alreadyFound:
log("[!]Found in %s:" % fn)
alreadyFound = True
found = True
copyFile(fn)
log("\t%s" % '\t'.join(data[i-args.context:i+args.context+1]).strip())
나는 "슈퍼 정규식"을 구성, 다음과 같은 방법으로로드하는 것이 나는 파일 (한 줄에 하나씩)에서 모든 정규식이
이것은 작동합니다. 나는 이것이 효율적이지 않고 위험하다는 것을 느낀다. (dic의 일부 정규 표현식은 "super regex"를 깨뜨릴 수있다.) 나는 생각에 대한 정규식 배열에 반복 하지만 각 파일에 여러 번 스캔 의미 :/
이 작업을 수행하는 방법에 대한 브릴리언트 생각을? 감사!
실제로이 문제는 실제로 나타나지 않습니다. 반드시 우아 할 필요는 없지만, 말하면서, 그것은 상대적 효율성으로 일을 끝내게됩니다. – jdotjdot