리눅스에서 파이프를 사용할 때 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