如何将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