Existem alguns comandos que filtram ou agem na entrada e, em seguida, transmitem-na como saída, penso eu normalmente stdout
- mas alguns comandos simplesmente aceitam stdin
e fazem o que fazem com ela e não produzem nada.
Estou mais familiarizado com o OS X e, portanto, existem dois que vêm à mente imediatamente pbcopy
e pbpaste
- que são meios de acessar a área de transferência do sistema.
De qualquer forma, eu sei que se eu quiser pegar o stdout e cuspir a saída para ir para o stdout
arquivo e para os dois, então posso usar o tee
comando E eu sei um pouco xargs
, mas acho que não é isso que estou procurando.
Quero saber como posso dividir stdout
para ir entre dois (ou mais) comandos. Por exemplo:
cat file.txt | stdout-split -c1 pbcopy -c2 grep -i errors
Provavelmente, há um exemplo melhor do que esse, mas estou realmente interessado em saber como posso enviar stdout para um comando que não o retransmite e, ao mesmo tempo, stdout
não seja "silenciado" - não estou perguntando sobre como cat
um arquivo e grep
parte dele e copie-o para a área de transferência - os comandos específicos não são tão importantes.
Além disso - não estou perguntando como enviar isso para um arquivo e stdout
- isso pode ser uma pergunta "duplicada" (desculpe), mas fiz algumas pesquisas e só consegui encontrar perguntas semelhantes que estavam perguntando sobre como dividir entre stdout e um arquivo - e as respostas para essas perguntas pareciam ser tee
, o que acho que não funcionará para mim.
Finalmente, você pode perguntar "por que não fazer do pbcopy a última coisa na cadeia de tubos?" e minha resposta é 1) e se eu quiser usá-lo e ainda ver a saída no console? 2) e se eu quiser usar dois comandos que não saem stdout
depois que eles processam a entrada?
Ah, e mais uma coisa - eu sei que eu poderia usar tee
e um pipe nomeado ( mkfifo
), mas eu esperava uma maneira de que isso pudesse ser feito em linha, de forma concisa, sem uma configuração prévia :)