Bu senaryomu deneyebilirsin. Bir dosya belirtmenize izin verir veya standart girdi alır. Vurgulamak istediğiniz metin için bir Python normal ifadesi tanımlayabilirsiniz. Vurgulanan metin varsayılan olarak neon yeşildir (hey siyah bir arka plan kullanıyorum!) Ancak ANSI renk kodunu değiştirebilirsiniz .
#!/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)
İşte bir örnek.
blessburn@blessburn:/tmp$ cat test.txt | ./colorme.py an
Umutları bir Afgh gelen düzenli NATO çekilme bir ist bir Devlet Başkanı Hamid Karzai olarak uğradığı iki gerilemeler demlenmeye bir ABD askerlerine ded sınırlarını bir Talib d bir barış görüşmelerini durdurdu.
blessburn@blessburn:/tmp$ ./colorme.py '(Af.*? |NA[\w]{2})' test.txt
NATO'nun Afganistan'dan düzenli bir şekilde çekilmesi beklentileri , Cumhurbaşkanı Hamid Karzai'nin ABD birliklerine sınırlar getirmesi ve Taliban barış görüşmelerini durdurması nedeniyle iki aksilik yaşadı.
highlight
komutun