У меня странная проблема с egrep и pipe
Я попытался отфильтровать поток, содержащий несколько строк, начинающихся с названия темы, например
"TICK: это тиковое сообщение \ n"
Когда я пытаюсь использовать egrep для фильтрации:
./stream_generator | egrep 'TICK' | ./topic_processor
Кажется, что topic_processor никогда не получает никаких сообщений
Однако, когда я использую следующий скрипт на Python:
./stream_generator | python filter.py --topics TICK | ./topic_processor
все выглядит хорошо.
Я полагаю, что для egrep должен быть механизм сброса, верно?
Может кто-нибудь здесь дать мне подсказку? Спасибо миллион
import sys
from optparse import OptionParser
if __name__ == '__main__':
parser = OptionParser()
parser.add_option("-m", "--topics",
action="store", type="string", dest="topics")
(opts, args) = parser.parse_args()
topics = opts.topics.split(':')
while True:
s = sys.stdin.readline()
for each in topics:
if s[0:4] == each:
sys.stdout.write(s)
sys.stdout.flush()