Я запускаю скрипт input.sh, который имеет несколько многострочных выходов, например:
echo -e 'first \n second'
echo -e 'first \n second'
echo -e 'first \n second'
У меня нет контроля над этим файлом, и я могу только знать, что он будет иметь несколько многострочных выходов.
Мне нужно иметь возможность проводить операции с каждым отдельным выводом из этого файла в режиме реального времени, поскольку он выводит сообщения. Буферизация - это одна из проблем, но не та, о которой я здесь спрашиваю.
Я немного упрощаю, но моя проблема сводится к следующему: я хочу вставить кенгуру в конце каждого отдельного вывода. Смотрите мои попытки ниже:
./input.sh | sed 's/$/kangaroo/'
Эта версия выше вставляет кенгуру после каждой новой строки, а не каждого многострочного вывода.
./input.sh | perl -0777 -pe 's/$/kangaroo/'
Эта версия Perl вставляет кенгуру только после того, как все выходы завершены (один итог кенгуру вместо одного кенгуру на выход.)
Я пробовал другие варианты, но это всегда один или другой - кенгуру после каждой новой строки или один кенгуру после всего. Я пытался использовать tr
, чтобы заменить новые строки фидами форм, но это не имело никакого значения.
Как это можно сделать?
Кстати, я прочитал этот вопрос и его ответы внимательно, но они обсуждают работу с файлом. Я не смог применить принципы, описанные там, к конвейеру и чтению со стандартного ввода.