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
2番目のコマンドの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