LINUX.ORG.RU

Выхлоп SED`а сразу в TTY.

 ,


0

1

Простой конвейер «Утилита | SED» выводит сразу все строки.

Подскажите конструкцию BASH, чтобы реализовать редактирование «на лету».

Пример:

Когда утилита отдаёт новую строку - SED обрабатывает её СРАЗУ, и отправляет результат на StdOut, после чего SED ждёт следующую строку от утилиты.

★★

Во-первых, в Unix-ах все регистрозависимое. Никто здесь не знает, что такое SED, BASH и StdOut.

Во-вторых, sed - это stream editor. Он уже это делает.

lealxe
()
cat - | sed 's/a/b/g'                                                
aaa
bbb
fff
fff

Обрабатывает, ждет. Что не так-то?

undef ★★
()

так он и поступает. получает строку c stdin - обрабатывает - отсылает в stdout.
обработка заканчивается по пришествию символа окончания файла.

pfg ★★★★★
()
Ответ на: комментарий от pfg

Обычно, да, но у меня работает иначе.

Возможно, проблема в том, что предыдущая утилита – скрипт.

zzdnx ★★
() автор топика
Ответ на: комментарий от zzdnx

Попробуй

speedtest --simple | cat
скорее всего тоже будет задерживать данные. Если так, то дело не в sed-е. Программы, выводящие информацию через stdio, если их вывод направлен не в терминал напрямую, буферизуют его и выводят только большими кусками.

Исправить это (без перекомпилирования) можно только костылями.

https://unix.stackexchange.com/questions/97294/unbuffer-or-stdbuf-for-removin...

firkax ★★★★★
()
Ответ на: комментарий от zzdnx

Опять поднимают тему буферизирования вывода. Да он (вывод) буферизируется, т.е. накапливается и отдается порциями.

В некоторых утилитах есть даже спец. функция типа fflush() для принудительного вывода буфера

futurama ★★★★★
()
Ответ на: комментарий от firkax

Спасибо за ответ (и костыли), теперь всё встало на свои места.

zzdnx ★★
() автор топика
Ответ на: комментарий от futurama

Понятно, я с самого начала не правильно вопрос задавал. Спасибо!

zzdnx ★★
() автор топика
Ответ на: комментарий от futurama

Пробовал, но не помогло, потому и написал вопрос. Оказалось, что я искал не то и не там. Всем спасибо.

zzdnx ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.