Com algum python:
#! /usr/bin/python3
import sys
textfile = 'input.txt'
patfile = 'patterns.txt'
with open(textfile) as text:
with open(patfile) as pat:
patterns = [line.strip() for line in pat]
for line in text:
line = line.strip()
print(line)
out = line[:]
for p in patterns:
out = out.replace(p, '|'*len(p))
print(''.join(v if v == '|' else ' ' for v in out))
print(''.join(line[k] if v == '|' else ' ' for k, v in enumerate(out)))
Essencialmente, isso acontece para cada linha no arquivo de entrada:
- Imprime a linha e faz uma cópia.
- Para cada padrão, substitua as ocorrências do padrão na linha por
|
na cópia. - Em seguida, imprime a cópia com tudo, exceto
|
substituído por espaços. - Em seguida, ele imprime o caractere da linha original sempre que
|
ocorre na cópia ou em espaços diferentes.
Eu assumo que os padrões são sequências fixas que não contêm |
.