удвойтесь grep на хвосте-f не дает вывода

[1129236] файлы формата ".deb" не являются исполняемыми двоичными файлами. Используйте команду [1129568]dpkg[1129569] для установки вашего пакета :

1
28.10.2014, 21:33
2 ответа

Как упомянутую RUBO77, проблема решается путем добавления - выпученного к первой команде GREP:

tail -f  /var/log/syslog|grep --line-buffered s|grep s

Однако вы тогда можете спросить, почему ISN Это необходимо для одного команды GREP ? Разница между ними заключается в том, что в следующем команде:

tail -f  /var/log/syslog|grep s

STDOUT для GREP указана на терминал. GREP Скорее всего, пишет в STDOUT через функции, содержащиеся в библиотеке Stdi. За документацию ( STDIO (3) ):

выходные потоки, которые относятся к терминальным устройствам, всегда являются буферами по умолчанию;

Таким образом, базовые библиотечные вызовы промывают буфер после каждой строки без Любое действие на часть Грепа.

В этой команде:

tail -f  /var/log/syslog|grep --line-buffered s|grep s

STDIO теперь идет в трубу, а не к терминальному устройству, и функции библиотеки, которые GREP использует для записи в STDOUT, полностью буферы, а не используют буферизацию линии. Когда используется флаг - линейный флаг , GREP будет звонить Fflush , что будет промотала все буферизованные записи.

3
27.01.2020, 23:15

Вам нужно добавить --line-буферизованный к grep

tail -f  /var/log/syslog|grep --line-buffered s|grep s
3
27.01.2020, 23:15

Теги

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