我想将小文本片段放在长句上,例如
输入_完整句子
TRSTUVWSRTPSAREWSTRESW
短片段列表
TRST
RESW
输出
我希望输出使得短片段匹配的任何地方都可见,并且恰好位于长句子下方
TRSTUVWSRTPSAREWSTRESW
|||| ||||
TRST RESW
答案1
使用一些 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)))
本质上,对于输入文件中的每一行,这都是这样的:
- 打印该行并进行复印。
|
对于每个模式,用副本中的模式替换行中出现的模式。|
然后,它会打印出除空格之外的所有内容的副本。|
然后,它会在副本中的任何位置打印原始行的字符,否则打印空格。
我假设模式是固定字符串,不包含|
。