如何在stdout中显示命令输出并将其传输到管道

时间:2014-03-27 16:33:44

标签: bash

让我说我有fallowing cmd:

ls | grep dir

如果有名称包含dir的文件夹,则会看到它们。 如果没有,那么我根本看不到任何输出。

现在,我想要的是查看ls命令的输出,然后还看到grep之后的最终输出。

让我们这样说:

>>ls | grep dir
filea fileb filec
filed dir1  dir2

dir1 
dir2

前两行是ls的结果,后两行是grep命令的结果。

我该怎么做?

3 个答案:

答案 0 :(得分:2)

ls |tee /dev/tty |grep dir

会这样做,虽然它不会在两个部分之间留出空间。

答案 1 :(得分:0)

我在那里作弊,但你不能一个接一个地做两个命令吗? 喜欢(添加回声以在它们之间放置一些空间):

 ls && echo && ls | grep dir

答案 2 :(得分:0)

最简单的方法是运行ls两次:

ls; ls -1 | grep dir

请注意-1选项。 grep是面向行的,这就是为什么ls应该每行打印一个目录条目。