Метрика шлюза по умолчанию в systemd-networkd

I can't use grep on all of the input since it's a stream. I can accumulate a chunk of stream and use grep on it...

Вы в курсе, что трубопроводы блокируются? Если вы передаете что-то в grep, а все входные данные недоступны, grep будет ждать, пока они не будут доступны, а затем продолжит работу, как если бы входные данные были там все время.

$ ( echo a1; echo b1; sleep 5; echo a2 ) | grep 'a.'
a1
a2

РЕДАКТИРОВАТЬ :Как работают конвейеры, например, с cmd1 | cmd2, обе программы запускаются одновременно, например, с. 65 536 -байт «буфера фрагментов» между ними. Когда cmd2пытается прочитать, а этот буфер пуст, он будет ждать, пока фрагмент станет доступным. Когда cmd1пытается записать и этот буфер заполнен, он будет ждать, пока cmd2не прочитает его.

Из того, что я могу прочитать, нет необходимости разбивать входные данные на куски и передавать их в grep отдельно. Это уже сделано автоматически.

EDIT2:grepтакже должен печатать результаты, как только находит их в потоке. Нет необходимости, чтобы поток заканчивался, прежде чем вы сможете получить свои результаты.

0
28.11.2019, 11:49
0 ответов

Теги

Похожие вопросы