From 8566e474b4e54956a14f056173692c834f40f1a5 Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Wed, 22 Oct 1997 20:44:58 +0000 Subject: [PATCH] Added pgrep() function, which is like grep/egrep/emgrep but uses Perl syntax, by virtue of the new re module. --- Lib/grep.py | 18 ++++++++++++++++++ Lib/lib-old/grep.py | 18 ++++++++++++++++++ 2 files changed, 36 insertions(+) diff --git a/Lib/grep.py b/Lib/grep.py index f4666512b70..423c065af78 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 f4666512b70..423c065af78 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: