我想要的是打印输出的第一行(表头)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}
是与前两个条件相关的操作,在本例中:打印整行。