awkとコマンドを使用して「ps」コマンドを使用してプロセスIDを表示する方法

awkとコマンドを使用して「ps」コマンドを使用してプロセスIDを表示する方法

PID以下を使って(2列目)を表示できます。

ps -ef | grep runner | awk {'print$2'}
2432
6346
6348
6350
6352
7407
7410
7416
10824
17305
17494
29658

ところで私がお見せしたいのは(8列)pwdx <PID>です。COMMAND

どうすればいいですか?

ベストアンサー1

awkを使ってps出力をフィルタリングするのではなく、ps -oオプションを使って必要なものを取得します。

ps -e -o pid,comm

上記のように実行する必要があります。印刷の詳細については、psのマニュアルページを参照してください。

アップデート:正しく機能していないことがわかりましたpwdx。サイズに合わせて着てみてください。

#!/bin/bash
ps -o pid= -o comm= |
while read LINE
do
    eval $(echo $LINE |
    awk '{pid=$1; comm=$2; printf "echo -n \"%s  \"; pwdx %s\n", comm, pid}' )
done

必要なプロセスを取得するには、フラグを追加する必要がありますps。上記のプロセスは、ユーザーIDのプロセスのみを示しています。

おすすめ記事