为什么这个带有流程替换的 T 恤不产生第一条和选定的线路?

为什么这个带有流程替换的 T 恤不产生第一条和选定的线路?

我想要的是打印输出的第一行(表头)ps aux和 grep 结果。

经过搜索,我得出以下结论。

ps aux | tee >(head -1 > /dev/tty) | grep mongo

但我发现 stdingrep mongo被切断了。

另外,如果我省略> /dev/tty,则直接的标准输出将是什么head -1?为什么不是控制台?

(是的,我知道我可以通过命令达到我的目的awk。我只是好奇为什么我的命令不起作用?)

答案1

您可以用来awk同时匹配两个事物:

  • 第一行。
  • 包含“mongo”的行。

就这样:

$ ps aux | awk 'NR == 1 || /mongo/ {print $0}'
  • 条件NR == 1与第一行匹配。
  • 条件/mongo/匹配包含“mongo”的行。
  • {print $0}是与前两个条件相关的操作,在本例中:打印整行。

相关内容