相关疑难解决方法(0)

如何将标准输出发送到多个命令?

有一些命令可以过滤或作用于输入,然后将其作为输出传递,我认为通常是stdout- 但有些命令只会接受stdin并执行它们对它所做的任何事情,并且不输出任何内容。

我最熟悉 OS X,因此我立即想到了两个pbcopypbpaste- 它们是访问系统剪贴板的方法。

无论如何,我知道如果我想使用 stdout 并将输出输出到两个stdout文件和一个文件,那么我可以使用该tee命令。我对 有一点了解xargs,但我认为这不是我要找的。

我想知道如何拆分stdout以在两个(或多个)命令之间切换。例如:

cat file.txt | stdout-split -c1 pbcopy -c2 grep -i errors
Run Code Online (Sandbox Code Playgroud)

可能有一个比那个更好的例子,但我真的很想知道如何将标准输出发送到一个不中继它的命令,同时避免stdout被“静音” - 我不是问如何cat归档和grep它的一部分并将其复制到剪贴板 - 具体命令并不那么重要。

另外 - 我不是在问如何将它发送到文件,而且stdout- 这可能是一个“重复”的问题(抱歉),但我做了一些查找,只能找到类似的询问如何在标准输出和文件之间拆分的问题- 这些问题的答案似乎是tee,我认为这对我不起作用。

最后,你可能会问“为什么不让 pbcopy 成为管道链中的最后一件事?” 我的回答是 1) 如果我想使用它并且仍然在控制台中看到输出怎么办?2)如果我想使用两个stdout在处理输入后不输出的命令怎么办?

哦,还有一件事 - 我意识到我可以使用tee一个命名管道(mkfifo),但我希望有一种方法可以简洁地内联完成,无需事先设置:)

command-line shell io-redirection

245
推荐指数
7
解决办法
17万
查看次数

标签 统计

command-line ×1

io-redirection ×1

shell ×1