如何在Linux中使用管道时打印ps头

如何在Linux中使用管道时打印ps头

在linux中使用管道时如何打印ps头

这是正常的 ps 输出

$ ps -ef
UID         PID   PPID  C STIME TTY          TIME CMD
root          1      0  0 17:00 ?        00:00:02 /usr/lib/systemd/systemd

但下面的 ps 命令输出没有标题

$ ps -ef | grep systemd
root          1      0  0 17:00 ?        00:00:02 /usr/lib/systemd/systemd

如何打印第二个命令的 ps 标题?

谢谢

答案1

我的第一反应是这样做 ps -ef | grep UID && ps -ef | grep systemd,但这也会像这样打印 grep 命令

$ ps -ef | grep UID && ps -ef | grep systemd
UID         PID   PPID  C STIME TTY          TIME CMD
root          1      0  0 17:00 ?        00:00:02 /usr/lib/systemd/systemd
user          PID PPID  C 23:30 ?        00:00:00 grep systemd
user          PID PPID  C 23:30 ?        00:00:00 grep UID

我不明白如何只打印标题,因为任何时候执行此操作,正则表达式都会匹配 grep 本身。

答案2

这可以避免 grep 出现在其中

ps -ef > tmpfile.txt; egrep 'UID|systemd' tmpfile.txt; rm tmpfile.txt

相关内容