grep is a quite useful command line but some options don't leave well with zip files....like:
-H, --with-filename print the filename for each match
bzgrep nore zgrep solve the problem, it is making the same effect as:
zcat *.bz2 | grep -H "something"
it generate this
(standard input):
not:
filename:
So here is my zgrep.py (example: ls *.gz | zgrep.py "a <.*> (.*)")
-H, --with-filename print the filename for each match
bzgrep nore zgrep solve the problem, it is making the same effect as:
zcat *.bz2 | grep -H "something"
it generate this
(standard input):
not:
filename:
So here is my zgrep.py (example: ls *.gz | zgrep.py "a <.*> (.*)")
#!/usr/bin/env python ''' allow grep -H option of bzip & zip files ''' import sys import gzip import bz2 import re exp = sys.argv[1] expExtractor = re.compile(exp) for filename in sys.stdin: filename = filename.strip() if filename.endswith('.gz'): freader = gzip.open(filename,'r') elif filename.endswith('.bz2'): freader = bz2.BZ2File(filename) else: freader = open(filename, 'r') for i, line in enumerate(freader): line = line.strip() if expExtractor.search(line): print "%s:%i <%s>" %(filename, i, line)
No comments:
Post a Comment