awk에서 xargs로 여러 줄 전달

awk에서 xargs로 여러 줄 전달

특정 키워드와 일치하는 프로세스의 리소스 사용량을 모니터링하는 간단한 방법을 원합니다.

그래서 나는 다음과 같은 일을 했습니다:

ps -aux | grep XX | awk 'FNR == 2 {print $2}' | xargs -o -I {} top -p {}

( pgrep저의 경우에는 작동하지 않습니다)

이를 통해 출력의 두 번째 줄의 PID를 가져 ps와서 top모니터링만 할 수 있도록 전달할 수 있습니다.하나이런 식으로 처리하세요.

그런데 검색어와 일치하는 행이 많고 top.

따라서 이 awk명령은 {print $2}여러 줄을 출력하며 각 줄에는 1개의 PID가 있습니다.

나는 다음과 같은 것을 갖고 싶다top -p PID1 -p PID2 ...

top이러한 모든 PID를 via xargs(또는 다른 간단한 방법) 에 어떻게 전달할 수 있습니까 ?

답변1

생각하다요청하신 내용은 다음과 같습니다.

ps -aux | awk 'BEGIN{printf "top "} /XX/{printf "-p %s ",$2}END{print ""}'|xargs -o -I {} bash -c "{}"

관련 정보