Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 8566e47

Browse files
committed
Added pgrep() function, which is like grep/egrep/emgrep but uses Perl
syntax, by virtue of the new re module.
1 parent b491442 commit 8566e47

2 files changed

Lines changed: 36 additions & 0 deletions

File tree

Lib/grep.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,24 @@ def ggrep(syntax, pat, files):
3838
showline(filename, lineno, line, prog)
3939
fp.close()
4040

41+
def pgrep(pat, *files):
42+
if len(files) == 1 and type(files[0]) == type([]):
43+
files = files[0]
44+
global opt_show_filename
45+
opt_show_filename = (len(files) != 1)
46+
import re
47+
prog = re.compile(pat)
48+
for filename in files:
49+
fp = open(filename, 'r')
50+
lineno = 0
51+
while 1:
52+
line = fp.readline()
53+
if not line: break
54+
lineno = lineno + 1
55+
if prog.search(line):
56+
showline(filename, lineno, line, prog)
57+
fp.close()
58+
4159
def showline(filename, lineno, line, prog):
4260
if line[-1:] == '\n': line = line[:-1]
4361
if opt_show_lineno:

Lib/lib-old/grep.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,24 @@ def ggrep(syntax, pat, files):
3838
showline(filename, lineno, line, prog)
3939
fp.close()
4040

41+
def pgrep(pat, *files):
42+
if len(files) == 1 and type(files[0]) == type([]):
43+
files = files[0]
44+
global opt_show_filename
45+
opt_show_filename = (len(files) != 1)
46+
import re
47+
prog = re.compile(pat)
48+
for filename in files:
49+
fp = open(filename, 'r')
50+
lineno = 0
51+
while 1:
52+
line = fp.readline()
53+
if not line: break
54+
lineno = lineno + 1
55+
if prog.search(line):
56+
showline(filename, lineno, line, prog)
57+
fp.close()
58+
4159
def showline(filename, lineno, line, prog):
4260
if line[-1:] == '\n': line = line[:-1]
4361
if opt_show_lineno:

0 commit comments

Comments
 (0)