summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Lib/grep.py18
-rw-r--r--Lib/lib-old/grep.py18
2 files changed, 36 insertions, 0 deletions
diff --git a/Lib/grep.py b/Lib/grep.py
index f466651..423c065 100644
--- a/Lib/grep.py
+++ b/Lib/grep.py
@@ -38,6 +38,24 @@ def ggrep(syntax, pat, files):
showline(filename, lineno, line, prog)
fp.close()
+def pgrep(pat, *files):
+ if len(files) == 1 and type(files[0]) == type([]):
+ files = files[0]
+ global opt_show_filename
+ opt_show_filename = (len(files) != 1)
+ import re
+ prog = re.compile(pat)
+ for filename in files:
+ fp = open(filename, 'r')
+ lineno = 0
+ while 1:
+ line = fp.readline()
+ if not line: break
+ lineno = lineno + 1
+ if prog.search(line):
+ showline(filename, lineno, line, prog)
+ fp.close()
+
def showline(filename, lineno, line, prog):
if line[-1:] == '\n': line = line[:-1]
if opt_show_lineno:
diff --git a/Lib/lib-old/grep.py b/Lib/lib-old/grep.py
index f466651..423c065 100644
--- a/Lib/lib-old/grep.py
+++ b/Lib/lib-old/grep.py
@@ -38,6 +38,24 @@ def ggrep(syntax, pat, files):
showline(filename, lineno, line, prog)
fp.close()
+def pgrep(pat, *files):
+ if len(files) == 1 and type(files[0]) == type([]):
+ files = files[0]
+ global opt_show_filename
+ opt_show_filename = (len(files) != 1)
+ import re
+ prog = re.compile(pat)
+ for filename in files:
+ fp = open(filename, 'r')
+ lineno = 0
+ while 1:
+ line = fp.readline()
+ if not line: break
+ lineno = lineno + 1
+ if prog.search(line):
+ showline(filename, lineno, line, prog)
+ fp.close()
+
def showline(filename, lineno, line, prog):
if line[-1:] == '\n': line = line[:-1]
if opt_show_lineno: