Вы можете попробовать этот мой сценарий. Это позволит вам либо указать файл, либо он принимает стандартный ввод. Вы можете определить регулярное выражение Python для текста, который вы хотите выделить. выделенный текст по умолчанию неоновый зеленый (эй, я использую черный фон!), но вы можете изменить цветовой код ANSI .
#!/usr/bin/env python
import sys
import re
def highlight_text(text,pat):
def replacement_funk(matchobj): return '\x1b[42m%s\x1b[0m'%matchobj.group(0)
return re.sub(pat,replacement_funk,text)
if __name__ == '__main__':
if len(sys.argv) == 2:
input = sys.stdin
pat = sys.argv[1]
elif len(sys.argv) == 3:
input = open(sys.argv[2])
pat = sys.argv[1]
else:
sys.stderr.write("colorme pattern [inputfile]")
text = input.read()
print highlight_text(text,pat)
Вот пример.
blessburn@blessburn:/tmp$ cat test.txt | ./colorme.py an
Перспективы на упорядоченный вывод НАТО из Afgh IST А.Н. пострадало два регресса как президент Хамид Карзай дем DED пределов войск Соединенных Штатов d Талиб остановил мирные переговоры.
blessburn@blessburn:/tmp$ ./colorme.py '(Af.*? |NA[\w]{2})' test.txt
Перспективы упорядоченного вывода НАТО из Афганистана потерпели две неудачи: президент Хамид Карзай потребовал ограничения на войска Соединенных Штатов, а талибы прекратили мирные переговоры.
highlight
команды