在 unix/bash 中是否可以通过管道将两个命令的输出传送到另一个命令?
我尝试运行以下命令,该命令成功运行了两个命令,但第一个命令通过管道传输到 stdout,第二个命令通过管道传输到 less。
$ grep 40515575 * && zgrep 40515575 * | less
答案1
尝试一下这个:
$ ( grep 40515575 * && zgrep 40515575 * ) | less
答案2
根据系统的不同,您可能会发现“less”能够识别许多不同类型的文件,例如 gzip 和 bzip2 压缩文件。
也许你真正想说的是:
less * | grep 40515575 | less
记住这一点很有帮助,在这种情况下,最初的“less”的作用类似于“cat”,因为它的输出不是发送到 TTY。