Shell-Script
使用 AWK 按 CPU 使用率 (Ubuntu) 定位程序 ID
我有一個命令,我執行它來嘗試列出 PID 及其 CPU 使用率。我正在使用
ps -ef
.有沒有(更好的)方法來做到這一點
top
?awk
另外,我對我的陳述有疑問。我的變數$vGRP
是一個正則表達式。我如何測試是否$2
在$vGRP
?如果是這樣,這可以切斷我的一個grep
電話。我最初將其寫為“單行”,我可以將其粘貼到終端會話中,因此請原諒格式:
clear; printf "Please enter process name: "; read vPNAME; for i in $(pgrep "$vPNAME"); do vGRP="$vGRP$i|"; done; vGRP="${vGRP::-1}"; printf "Seaching for processes: $vGRP\n PID\tUSAGE\n-------\t-------\n"; ps -ef | egrep "$vGRP" | egrep "$vPNAME" | awk '{print $2, "\t", $4 }'; vGRP=""; vPNAME="";
理想情況下,我想要一些更清潔的東西,但我不太熟悉,如果可能的話
bash
,我想awk
檢查字元串中的欄位 2 。vGRP
ps -ef | awk -v vGRP="$vGRP" '$vGRP~/$2/ {print $2, "\t", $4 }';
但是,這不提供輸出,因為我假設
awk
不讀取外部變數。
顯然是在重新發明輪子。
ps -o pid,pcpu -p $(pgrep "$vPNAME")