Skip to content

Commit 481ec94

Browse files
committed
Add python grep script
1 parent cd058a9 commit 481ec94

File tree

1 file changed

+34
-0
lines changed

1 file changed

+34
-0
lines changed

pygrep.py

+34
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
#!/usr/bin/env python
2+
import argparse
3+
import os
4+
import fnmatch
5+
6+
7+
def file_generator(pattern):
8+
for root, dirs, files in os.walk("."):
9+
for item in fnmatch.filter(files, pattern):
10+
yield item
11+
12+
13+
def entries_generator(item, keyword):
14+
with open(item, 'r') as f:
15+
for number, line in enumerate(f, 1):
16+
if str(keyword) in line:
17+
yield (number, line)
18+
19+
20+
def grep(pattern, keyword):
21+
for item in file_generator(pattern):
22+
for number, line in entries_generator(item, keyword):
23+
print(
24+
os.path.join('', item) + ":",
25+
number,
26+
line.replace(keyword, '\x1b[31m %s\x1b[0m' % keyword)
27+
)
28+
29+
if __name__ == '__main__':
30+
parser = argparse.ArgumentParser()
31+
parser.add_argument('pattern')
32+
parser.add_argument('keyword')
33+
args = parser.parse_args()
34+
grep(args.pattern, args.keyword)

0 commit comments

Comments
 (0)