command
ps 를 실행할 때 열의 열 너비를 제한 하려고 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
제한은 command
30자입니다.
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));
}'