← All posts tagged Unix

Kim
? Unix stream file Есть программа которая пишет одновременно в stdout и stderr. Для полноты скажем что программа удовлетворяет шаблону

prog() {
echo "process some_data"
echo "warnings on this data" >&2
echo "process other_data"
echo "warning other data" >&2
}

Задача: Написать программу, которая получает prog, как чёрный ящик и ставит перед каждой строкой префикс с названием потока вывода. Так на prog ожидается вывод:

stdout> process some_data
stderr> warnings on this data
stdout> process other_data
stderr> warning other data

Требование: Порядок строк не должен меняться ни при каких условиях. То есть должен быть таким же, как в случае вывода, когда stderr и stdout являются дескрипторами одного и того же файла.

Расскажите, хотя бы на пальцах, как это сделать.