diff options
author | Guido van Rossum <guido@python.org> | 1997-10-22 20:44:58 (GMT) |
---|---|---|
committer | Guido van Rossum <guido@python.org> | 1997-10-22 20:44:58 (GMT) |
commit | 8566e474b4e54956a14f056173692c834f40f1a5 (patch) | |
tree | c58d8d2aa57e4bb0249eb2f56ad6621a078c5848 | |
parent | b49144244c930603e8eb54880874c37adcff1440 (diff) | |
download | cpython-8566e474b4e54956a14f056173692c834f40f1a5.zip cpython-8566e474b4e54956a14f056173692c834f40f1a5.tar.gz cpython-8566e474b4e54956a14f056173692c834f40f1a5.tar.bz2 |
Added pgrep() function, which is like grep/egrep/emgrep but uses Perl
syntax, by virtue of the new re module.
-rw-r--r-- | Lib/grep.py | 18 | ||||
-rw-r--r-- | Lib/lib-old/grep.py | 18 |
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: |