Awk

將多行從 awk 傳遞到 xargs

  • September 8, 2022

我想要一種簡單的方法來監視與某些關鍵字匹配的程序的資源使用情況。

所以我做類似的事情:

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

pgrep在我的情況下不起作用)

這使我可以獲取輸出第二行的 PIDps並將其傳遞給top. 我只能以這種方式監視一個程序。

但是假設有很多行與搜尋詞匹配,我想使用top.

所以awk命令將是公正的{print $2},它將輸出多行,每行有 1 個 PID。

我想要類似的東西top -p PID1 -p PID2 ...

如何將所有這些 PID 傳遞給topvia xargs(或其他簡單方法)?

認為這可以滿足您的要求:

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

引用自:https://unix.stackexchange.com/questions/716555