如何將awk
變量傳遞給bash
命令在awk
內運行?如何將awk變量傳遞給bash命令
我使用awk來計算線程的運行總和爲每一個特定的過程,但我想用每個PID訪問/proc/$pid
文件系統。
標記爲破線的線不正確,因爲$pid
不存在。
如何導出awk變量pid
到shell命令我得到awk
來運行?
(增加了可讀性換行符)
$ ps -ALf | grep $PROC | grep -v grep | \ # get each pid
awk '{threads[$2]+=1} END \ # count num threads per pid
{ \
for (pid in threads) \
"cat /proc/$pid/cwd"|getline cwd; \ # get 'cwd' (**broken**)
print cwd ": " threads[pid] \ # display 'cwd' and num threads
}'
爲什麼不在awk中做這麼多? – Johnsyweb
不要做'grep ... | grep -v ... | awk ...',因爲awk可以完成grep(s)的工作。在linux上,你可以使用'ps -C $ PROC'來只顯示一個特定的進程(es)。 – TrueY