문자열과 일치하는 일부 프로세스의 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를 사용하여 출력을 필터링하고, 일치하는 각 줄의 첫 번째 및 마지막 항목을 유지하고, 필드 및 레코드 구분 기호를 변경하고, 후행 쉼표를 개행 문자로 바꿉니다.