awkからxargsに複数行を渡す

awkからxargsに複数行を渡す

特定のキーワードに一致するプロセスのリソース使用量を監視する簡単な方法が必要です。

だから私は次のことをしました:

ps -aux | grep XX | awk 'FNR == 2 {print $2}' | xargs -o -I {} top -p {}

pgrep私の場合は動作しません)

これにより、出力の 2 行目の PID を取得し、psモニタリングtopのみできるように渡すことができます。一つこのように処理してください。

ところで検索語と一致する行が多くtop、 。

したがって、このawkコマンドは{print $2}複数行を出力し、各行には1つのPIDがあります。

次のようなものが欲しいtop -p PID1 -p PID2 ...

topこれらすべてのPIDをvia xargs(または他の簡単な方法)にどのように渡すことができますか?

ベストアンサー1

考えるリクエストされた内容は次のとおりです。

ps -aux | awk 'BEGIN{printf "top "} /XX/{printf "-p %s ",$2}END{print ""}'|xargs -o -I {} bash -c "{}"

おすすめ記事