Есть некоторые команды, которые фильтруют или воздействуют на ввод, а затем передают его как вывод, как я обычно думаю, stdout
- но некоторые команды просто берут stdin
и делают то, что с ним делают, и ничего не выводят.
Я знаком с OS X и так есть два , которые приходят на ум сразу же являются pbcopy
и pbpaste
- которые являются средством доступа к системному буферу.
Во всяком случае, я знаю, что если я хочу взять стандартный вывод и выплюнуть вывод, чтобы перейти к обоим stdout
и файл, то я могу использовать tee
команду. И я немного знаю xargs
, но не думаю, что это то, что я ищу.
Я хочу знать, как я могу разделить, stdout
чтобы перейти между двумя (или более) командами. Например:
cat file.txt | stdout-split -c1 pbcopy -c2 grep -i errors
Вероятно, есть лучший пример, чем тот, но мне действительно интересно знать, как я могу отправить стандартный вывод команде, которая не передает его, и, в то же время, stdout
не отключаясь - я не спрашиваю о том, как cat
файл и grep
часть его и скопировать в буфер обмена - конкретные команды не так важны.
Кроме того - я не спрашиваю, как отправить это в файл и stdout
- это может быть «дублирующий» вопрос (извините), но я немного искал и смог найти только похожие вопросы, которые спрашивали о том, как разделить между stdout и файлом - и ответы на эти вопросы, казалось, были tee
, что я не думаю, что будет работать для меня.
Наконец, вы можете спросить: «Почему бы просто не сделать pbcopy последней вещью в цепочке труб?» и мой ответ: 1) что, если я хочу использовать его и все еще видеть вывод в консоли? 2) что если я хочу использовать две команды, которые не выводятся stdout
после обработки ввода?
Да, и еще одна вещь - я понимаю, что мог бы использовать tee
именованную трубу ( mkfifo
), но я надеялся, что это можно будет сделать inline, сжато, без предварительной настройки :)