How to grep ps output with headers
ps -ef | egrep "GMC|PID"
Replace the "GMC" and ps
switches as needed.
Example output:
root@xxxxx:~$ ps -ef | egrep "disk|PID"
UID PID PPID C STIME TTY TIME CMD
paremh1 12501 12466 0 18:31 pts/1 00:00:00 egrep disk|PID
root 14936 1 0 Apr26 ? 00:02:11 /usr/lib/udisks/udisks-daemon
root 14937 14936 0 Apr26 ? 00:00:03 udisks-daemon: not polling any devices
ps -e
selects all processes, and ps -f
is full-format listing which shows the column headers.
Thanks to geekosaur, I would like to use this command for your demands, rather than a separated command:
ps -ef | head -1; ps -ef | grep "your-pattern-goes-here"
The tricky is to make use of the ";" supported by the shell to chain the command.
Second column is the process id; 4th is when the process was created (this is usually the time your program started, but not always; consider execve()
and friends); 6th is the amount of CPU time consumed. So it's been running for 8 days and used almost 7 days of CPU time, which I would consider worrisome.
Getting the header in the same invocation is tricky at best; I'd just do a separate ps | head -1
. You might consider using ps
's own selection methods or something like pgrep
instead of grep
, which isn't really designed to pass headers through.