공백 없이 "ps" 명령 출력 형식 지정

공백 없이 "ps" 명령 출력 형식 지정

ps실행 중인 모든 프로세스의 특정 속성과 일부 속성을 가져오는 다음 명령이 있습니다 .

ps --no-headers -exo "uname,ppid,pid,etime,%cpu,%mem,args"

구문 분석할 수 있도록 이것을 CSV 형식으로 지정하고 싶습니다. 구문 분석을 더 쉽게 하기 위해 인수를 끝에 넣었습니다. ,다른 열에는 유언장이 존재하지 않을 것 같습니다. 제가 틀렸다면 정정해 주세요.

공백을 제거하는 방법?

답변1

매뉴얼 페이지에서:

-o format       user-defined format.
                format is a single argument in the form of a blank-separated or comma-separated list, which offers a
                way to specify individual output columns. The recognized keywords are described in the STANDARD FORMAT
                SPECIFIERS section below. Headers may be renamed (ps -o pid,ruser=RealUser -o comm=Command) as
                desired. If all column headers are empty (ps -o pid= -o comm=) then the header line will not be
                output. Column width will increase as needed for wide headers; this may be used to widen up columns
                such as WCHAN (ps -o pid,wchan=WIDE-WCHAN-COLUMN -o comm). Explicit width control
                (ps opid,wchan:42,cmd) is offered too. The behavior of ps -o pid=X,comm=Y varies with personality;
                output may be one column named "X,comm=Y" or two columns named "X" and "Y". Use multiple -o options
                when in doubt. Use the PS_FORMAT environment variable to specify a default as desired; DefSysV and
                DefBSD are macros that may be used to choose the default UNIX or BSD columns.

그러니 시도해 보세요:

/bin/ps -o uname:1,ppid:1,pid:1

답변2

처음 6개 필드에는 공백 문자가 포함되어서는 안 되므로(사용자 이름에 공백 문자를 허용하지 않는 한) 출력을 후처리할 수 있습니다.

ps --no-headers -exo "uname,ppid,pid,etime,%cpu,%mem,args" | sed '
  s/[\"]/\\&/g
  s/  */,/;s/  */,/;s/  */,/;s/  */,/;s/  */,/;s/  */,"/
  s/$/"/'

"이 인용문은 이스케이프된 s와 \s 뒤의 마지막 필드(args)를 사용합니다 \.

다음 출력을 생성합니다.

stephane,3641,3702,10-00:20:24,0.1,0.3,"some cmd,and,args... VAR=foo\"bar"

답변3

sed와 함께 사용할 수 있습니다 ps. 그래서 당신이 원하는 것은 여기에 있습니다 :-

ps --no-headers -exo "uname,ppid,pid,etime,%cpu,%mem,args" | sed 's/\ /,/g'

ps그런데 자체적으로 출력되는 내용이 많아서 과연 쓸모가 있을지 궁금합니다 ,.

관련 정보