Awk
將多行從 awk 傳遞到 xargs
我想要一種簡單的方法來監視與某些關鍵字匹配的程序的資源使用情況。
所以我做類似的事情:
ps -aux | grep XX | awk 'FNR == 2 {print $2}' | xargs -o -I {} top -p {}
(
pgrep
在我的情況下不起作用)這使我可以獲取輸出第二行的 PID
ps
並將其傳遞給top
. 我只能以這種方式監視一個程序。但是假設有很多行與搜尋詞匹配,我想使用
top
.所以
awk
命令將是公正的{print $2}
,它將輸出多行,每行有 1 個 PID。我想要類似的東西
top -p PID1 -p PID2 ...
如何將所有這些 PID 傳遞給
top
viaxargs
(或其他簡單方法)?
我認為這可以滿足您的要求:
ps -aux | awk 'BEGIN{printf "top "} /XX/{printf "-p %s ",$2}END{print ""}'|xargs -o -I {} bash -c "{}"