File tree 1 file changed +34
-0
lines changed
1 file changed +34
-0
lines changed Original file line number Diff line number Diff line change
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 )
You can’t perform that action at this time.
0 commit comments