"""
Project: Regex Search
Page 230
"""

import re
import sys
from pathlib import Path

directory = Path(sys.argv[1])
keys = "|".join(sys.argv[2:])
regex = re.compile(f"({keys})")
result = []

for path in directory.glob("**/*.txt"):
    text = open(path, "r").readlines()
    show_header = True
    for i, line in enumerate(text):
        if re.match(regex, line):
            if show_header:
                result.append(f"\n{path}")
                show_header = False
            result.append(f"{i + 1}\t{line.strip()}")

print("\n".join(result).strip())
