Есть некоторые команды, которые фильтруют или воздействуют на ввод, а затем передают его как вывод, как я обычно думаю, 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, сжато, без предварительной настройки :)