ps 및 열 너비 사양과 함께 grep 사용

ps 및 열 너비 사양과 함께 grep 사용

commandps 를 실행할 때 열의 열 너비를 제한 하려고 command하지만 해당 출력을 grep명령으로 파이프하려고 합니다. 그러나 이것은 작동하지 않습니다.

이것은 잘 작동합니다:

ps -eo pid,user,command:30

그러나 이것은:

ps -eo pid,user,command:30 | grep node

나에게 다음과 같은 오류가 발생합니다.

ps: command:30: keyword not found

만일을 대비해 실제로 Mac에서 oh-my-zsh를 실행하고 있습니다.

도움을 주시면 감사하겠습니다!

답변1

sed가 지원한다고 가정하면 -E제한은 command30자입니다.

ps -eo pid,user,command |
sed -E 's/^( +[^ ]+ +[^ ]+ +)(.{30}).*$/\1\2/g'

awk를 사용하면 pid열 형식은 너비 6으로 설정되고(pid의 숫자는 최대 6자리라고 가정) 열 형식은 너비 10 에서 30 user으로 설정됩니다 .command

ps -eo pid,user,command |
awk '{
        line=$0;
        sub(/^ +[^ ]+ +[^ ]+ +/, "", line);
        printf("%6s %s%*s %s\n", $1, substr($2, 0, 10),
                length($2) <= 10 ? 10-length($2) : 0, " ",
                substr(line, 0, 30));
}'

관련 정보