blob: 767498bd3229f2d424bb584c965a3ca091e75dd0 [file] [log] [blame]
Guido van Rossum217a5fa1990-12-26 15:40:07 +00001# 'grep'
2
3import regexp
4import string
5
6def grep(expr, filename):
Guido van Rossumdff84041991-08-16 13:24:42 +00007 match = regexp.compile(expr).match
Guido van Rossum217a5fa1990-12-26 15:40:07 +00008 fp = open(filename, 'r')
9 lineno = 0
10 while 1:
11 line = fp.readline()
12 if not line: break
13 lineno = lineno + 1
Guido van Rossumdff84041991-08-16 13:24:42 +000014 res = match(line)
Guido van Rossum217a5fa1990-12-26 15:40:07 +000015 if res:
16 #print res
17 start, end = res[0]
18 if line[-1:] = '\n': line = line[:-1]
19 prefix = string.rjust(`lineno`, 3) + ': '
20 print prefix + line
21 if 0:
22 line = line[:start]
23 if '\t' not in line:
24 prefix = ' ' * (len(prefix) + start)
25 else:
26 prefix = ' ' * len(prefix)
27 for c in line:
28 if c <> '\t': c = ' '
29 prefix = prefix + c
30 if start = end: prefix = prefix + '\\'
31 else: prefix = prefix + '^'*(end-start)
32 print prefix