bash获取wc -l号并在一个命令中显示?

Sir*_*rex 2 bash lines count tee wc

我很确定这会很明显,但目前我这样做:

count=`find $dir -type f \( -perm -007 \) -print 2>/dev/null | wc -l`
Run Code Online (Sandbox Code Playgroud)

这让我得到了我想要的数字,但是不要在屏幕上显示任何内容(尽管我无论如何都会丢失错误行).

有没有办法做到这一点(获取wc -l计数到count变量),同时还在一个命令中显示输出到控制台?我很确定tee这里可以使用的东西,但是我的大脑并没有像它应该的那样工作.

否则,我想写一个临时文件和控制台使用它tee然后catwc会工作,但我相信必须有一个更优雅的方式来做到这一点.

编辑: 对不起,似乎问题不清楚.我不想显示屏幕的计数,我想显示我一直在计算的输出,即:来自find的输出

Mik*_*kel 5

啊,所以你想要打印正常输出,并且匹配的数量是$count多少?

试试这个:

count=`find $dir -type f \( -perm -007 \) -print 2>/dev/null | tee /dev/tty | wc -l`
Run Code Online (Sandbox Code Playgroud)

  • @David Conrad:这就是它的作用. (2认同)