나는 결합 top
하여 pidof
주문했다 :
top -p $(pidof <process_name>)
pidof <process_name>
ID가 반환 되면 명령이 유효합니다 top
. 그러나 pidof <process_name>
ID가 여러 개인 경우 top
명령이 작동하지 않습니다.
pidof
반환된 ID 사이에 공백이 있습니다. 예를 들면 다음과 같습니다.123 124 125
쉼표로 이러한 ID를 얻을 수 있으면 123, 124, 125
top
명령이 작동합니다. 출력 형식을 변경하는 방법은 무엇입니까 pidof
?
awk
텍스트 데이터 형식을 알고 있습니다 . 그러나 awk
쉘 명령을 사용하여 결과를 얻는 방법을 찾을 수 없습니다 .
답변1
사용 bash
:
top -p "$(pname="$(pidof <process_name>)"; echo "${pname// /,}")"
사용 tr
:
top -p "$(pidof <process_name> | tr ' ' ',')"
사용 sed
:
top -p "$(pidof <process_name> | sed 's/ /,/g')"
답변2
다음을 사용해 보세요 awk
.
top -p $(pidof <process_name>|awk '{gsub(/ /, ","); print }')
답변3
다음을 시도해 볼 수 있습니다.
top -p "$(pidof <process_name> | awk 'OFS="," { $1 = $1; print; }')"