@@ -0,0 +1,913 @@
+#!/usr/bin/env python%0Aimport argparse%0Aimport os%0Aimport fnmatch%0A%0A%0Adef file_generator(pattern):%0A    for root, dirs, files in os.walk(%22.%22):%0A        for item in fnmatch.filter(files, pattern):%0A            yield item%0A%0A%0Adef entries_generator(item, keyword):%0A    with open(item, 'r') as f:%0A        for number, line in enumerate(f, 1):%0A            if str(keyword) in line:%0A                yield (number, line)%0A%0A%0Adef grep(pattern, keyword):%0A    for item in file_generator(pattern):%0A        for number, line in entries_generator(item, keyword):%0A            print(%0A                os.path.join('', item) + %22:%22,%0A                number,%0A                line.replace(keyword, '%5Cx1b%5B31m %25s%5Cx1b%5B0m' %25 keyword)%0A            )%0A%0Aif __name__ == '__main__':%0A    parser = argparse.ArgumentParser()%0A    parser.add_argument('pattern')%0A    parser.add_argument('keyword')%0A    args = parser.parse_args()%0A    grep(args.pattern, args.keyword)%0A

Add python grep script