如何递归搜索包含正则表达式模式的目录下的所有文件?模式是UTF-8字符串。
任何使用Python,Perl或bash的解决方案都是合适的。
答案 0 :(得分:4)
grep -lr "pattern" /mydirectory/*
它将列出找到模式的mydirectory的所有文件。
答案 1 :(得分:2)
使用os.walk
import os
import re
target_dir = '.'
pattern = re.compile(r'blah')
for parent, dirnames, filenames in os.walk(target_dir):
for fn in filenames:
filepath = os.path.join(parent, fn)
try:
with open(filepath) as f:
if any(pattern.search(line) for line in f):
print(filepath)
except IOError:
pass