例如,取一个程序的stdout,用tee
获取它的两个副本并将它们(一个或最好都能通过其他程序传送)发送回vimdiff
。
如果可以在不必在磁盘上创建文件的情况下完成加分。
我知道如何将输入定向到一个带有两个输入的程序,比如
vimdiff <(curl http://google.com) <(curl http://archives.com/last_night/google.com)
并使用tee制作两个输出流
echo "abc" | tee >(sed 's/a/zzz/') >(sed 's/c/zzz/')
但我不知道如何将管道连接成菱形。
答案 0 :(得分:1)
如果你能使用fifo,那就不那么难了:
test -e fifo || mkfifo fifo
echo abc | tee >(sed s/a/zzz/ > fifo) | sed s/c/zzz/ | diff - fifo
答案 1 :(得分:0)
作为旁注,在ZSH下进行这项工作是额外的&#34;&gt;&#34;在tee之后需要(应该设置multios选项):
$ setopt multios
$ test -e fifo || mkfifo fifo
$ echo abc | tee > >(sed s/a/zzz/ > fifo) | sed s/c/zzz/ | diff - fifo