我需要收集一些与字符串匹配的进程的 CPU 消耗,但我需要将其放在由命令分隔的一行上,并且想知道是否有人知道这是否可以在一个ps
//命令中完成。grep
awk
使用案例:
- 我正在使用的命令:
ps aux | grep tx | grep -v grep | awk {'print $11":"$3'}
- 输出:
/opt/tx/bin/server:5.2
/opt/tx/bin/engine:1.2
/opt/tx/bin/agent:0.3
- 我需要得到什么:
/opt/tx/bin/server:5.2,/opt/tx/bin/engine:1.2,/opt/tx/bin/agent:0.3
欢呼所有
答案1
您可以使用以下方法达到相同的效果:
ps -e -o command,pcpu | awk -v OFS=: -v ORS=, '/tx/ {print $1, $NF}' | sed 's/,$/\n/'
这使用ps
选项过滤列,使用 AWK 过滤输出,保留每个匹配行上的第一个和最后一个条目,更改字段和记录分隔符,并用换行符替换尾随逗号。