단일 CSV 행에서 PS 섹션의 출력 가져오기

단일 CSV 행에서 PS 섹션의 출력 가져오기

문자열과 일치하는 일부 프로세스의 CPU 소비를 수집해야 하는데 명령으로 구분된 줄에 있어야 하며 이것이 ps하나의 // 명령으로 수행될 수 있는지 아는 사람이 있는지 궁금합니다.grepawk

사용 사례:

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

관련 정보