쉘 명령의 출력 형식을 지정하는 방법

쉘 명령의 출력 형식을 지정하는 방법

나는 결합 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; }')"

관련 정보