2015-12-11 6 views
1

Есть ли способ вывода как на stdout, так и на stdin другого процесса? То есть, чтобы промежуточный вывод был выведен до того, как он достигнет трубы другого процесса?Stdout как для трубы, так и для консоли?

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

+0

'tee' * - * запись в std-out, которая будет считываться с помощью следующего' '' sddin. Или я не понимаю вашего Q? – shellter

+0

@shellter - справа. Я хочу, чтобы он пошел в трубу и старый stdout (т.е. консольный дисплей) –

ответ

1

Это немного «хакерский», я думаю, но вы можете перенаправить вывод tee на stderr. Поскольку большинство программ берут ввод от stdin, перенаправление на stderr оставит исходный результат, пока он все еще прокладывается до следующего процесса.

Например,

cat file.txt | tee >&2 | wc -l 

будет выводить все содержимое file.txt, а затем выход только количество линий (wc -l) в file.txt.

Очевидно, что это будет работать, только если выходы stderr, где вы хотите (например, терминал/консоль).

Не идеальное решение, так как оно включает в себя использование stderr для чего-то, что не обязательно сделано, но оно работает.

+0

Спасибо за подсказку! Я нашел другое решение (просто напишите программу, чтобы сделать это ...), но это будет полезно для людей, приезжающих сюда позже. –

 Смежные вопросы

  • Нет связанных вопросов^_^