【发布时间】:2016-12-18 04:25:15
【问题描述】:
我想将给定命令 (rsync) 的一些过滤输出写入文件,但将完整的未过滤输出保留在标准输出(屏幕/终端)上。
我尝试了sed、tee 和process substitution 的一些组合,但无法成功。
这是我到目前为止所得到的:
rsync -aAXz --stats -v src dest > >(sed '0,/^$/d' | tee -a "summary.log")
sed '0,/^$/d' 删除第一个空白行之前的所有内容,留下rsync 的摘要并删除前导的详细输出。这按预期工作,仅将摘要打印到summary.log。
显然它还会删除来自stdout 的详细输出,因为tee 命令仅通过管道接收过滤后的sed 输出。
如何在使用sed 过滤之前写信给stdout 以查看屏幕/终端上的所有详细输出?
【问题讨论】:
-
你能举个例子解释一下吗?
-
rysnc | tee >(sed 'do stuff' >outputfile) -
完美,这正是我想要的!