GNU/Linux >> Linux の 問題 >  >> Linux

ヘッダーを使用して ps 出力を grep する方法

解決策 1:

ps -ef | egrep "GMC|PID"

「GMC」と ps を置き換えます 必要に応じて切り替えます。

出力例:

[email protected]:~$ 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

解決策 2:

geekosaur のおかげで、別のコマンドではなく、要求に応じてこのコマンドを使用したいと思います:

ps -ef | head -1; ps -ef | grep "your-pattern-goes-here"

トリッキーなのは、「;」を利用することです。コマンドをチェーンするためにシェルによってサポートされています。

解決策 3:

2 列目はプロセス ID です。 4 番目は、プロセスが作成されたときです (これは通常、プログラムが開始されたときですが、常にではありません。execve() を考慮してください)。 と友達); 6 番目は、消費された CPU 時間の量です。つまり、8 日間実行されており、約 7 日間の CPU 時間を使用しており、これは私が懸念していることです。

同じ呼び出しでヘッダーを取得することは、せいぜいトリッキーです。別の ps | head -1 を実行するだけです . ps の使用を検討してください。 独自の選択方法または pgrep のようなもの grep の代わりに 、実際にはヘッダーを渡すようには設計されていません。

解決策 4:

egrep ソリューションはシンプルで便利ですが、もちろん、常に「PID」を含むヘッダーに依存し (ただし、妥当な仮定以上です)、同じ文字列は他の場所では発生しません。あなたのニーズにはこれで十分だと思いますが、代替手段が必要な場合は sed があります。

Sed では、「最初の行を印刷し、次にパターンを含む任意の行を印刷する」と言うことができます。例:

ps auxwww | sed -n '1p; /PROCESS_NAME_TO_SEARCH/p;'

/sed -n/d; を追加 sed 自体を除外するには:

ps auxwww | sed -n '1p; /sed -n/d; /PROCESS_NAME_TO_SEARCH/p;'

解決策 5:

もっと簡単な方法:ps -ef | { head -1; grep GMC; }

数字をヘッダーが表示される行数に置き換えます。


Linux
  1. Du出力をサイズで並べ替える方法は?

  2. 「猫」の出力で単語を強調表示する方法は??

  3. ターミナルでマルチスレッドGrepを開始する方法は?

  1. 「#」または「;」で始まらない行をgrepする方法は?

  2. カラー出力をgrepする方法

  3. Wget で保存せずにファイルを要求するにはどうすればよいですか?

  1. トップコマンドの出力をLinuxのファイルにキャプチャする方法は?

  2. ファイル内で \n を grep する方法

  3. シェルコマンドの出力をループするにはどうすればよいですか?