gpt4 book ai didi

unix - 如何使用 tee 将所有输出发送到 stdout 并将 grepped 输出发送到文件?

转载 作者:行者123 更新时间:2023-12-04 23:57:56 24 4
gpt4 key购买 nike

我可以使用 tee 将输出发送到 stdout 和文件,如下所示:

./process.sh | tee output.log

如何将完整输出发送到标准输出并将 grepped 输出发送到文件?

这个不起作用,因为 tee 需要第二个文件参数:
./process.sh | tee | grep foo > output.log

最佳答案

你可以试试:

./process.sh | { tee /dev/tty | grep foo > output.log; }

这不会将输出发送到 stdout,而是发送到 tty。也许这已经足够了。

或者你可以这样做:
./process.sh | awk '/foo/{ print > "output.log"} 1'

打印 process.sh 的所有输出到标准输出,以及匹配 foo 的行被写入文件。

此外,你可以这样做:
mkfifo fifo
./process.sh | { cat fifo & tee fifo | grep foo > output.log; }
rm fifo

使用 /proc 可以更干净地做到这一点。文件系统:
./process.sh | { tee /proc/self/fd/6 | grep foo > output.lot; } 6>&1

关于unix - 如何使用 tee 将所有输出发送到 stdout 并将 grepped 输出发送到文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14778917/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com