Ви можете спробувати цей мій сценарій. Це дозволить вам або вказати файл, або він потребує стандартного введення. Ви можете визначити регулярний вираз 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
команди