처음 시간을 초로 변환합니다.
ps -p $PROCID -o cputime,etimes | awk -F'[: ]+' '/:/ {t=$3+60*($2+60*$1); print t,$NF}'
예를 들어, ps 명령은 다음을 생성합니다.
$ ps -p 5403 -o cputime,etimes
TIME ELAPSED
01:33:38 1128931
awk
명령은 반환 처리합니다
ps -p 5403 -o cputime,etimes | awk -F'[: ]+' '/:/ {t=$3+60*($2+60*$1); print t,$NF}'
5618 1128931
설명
-F'[: ]+'
이것은 awk에게 콜론과 공백을 필드 분리 자로 취급하도록 지시합니다. 이런 식으로시, 분 및 초가 별도의 필드로 나타납니다.
/:/ {t=$3+60*($2+60*$1); print t,$NF}
초기 /:/
는 코드가 콜론을 포함하는 행에서만 작동하도록 제한합니다. 헤더 행이 제거됩니다. 초는를 통해 시간, 분, 초에서 계산됩니다 t=$3+60*($2+60*$1)
. t
그런 다음에 대한 결과 값 이 경과 시간과 함께 인쇄됩니다.
취급 일
다음과 같이 ps
일,시, 분, 초를 생성하는 경우 :
2-03:01:33
그런 다음이 코드를 대신 사용하십시오.
ps -p $PROCID -o cputime,etimes | awk -F'[-: ]+' '/:/ {t=$4+60*($3+60*($2+24*$1)); print t,$NF}'
요일이 출력에 추가되거나 추가되지 않을 경우 다음 조합 명령을 사용하십시오.
ps -p $PROCID -o cputime,etimes | awk -F'[-: ]+' '/:/ && NF==5 { t=$4+60*($3+60*($2+24*$1)); print t,$NF} /:/ && NF==4 {t=$3+60*($2+60*$1); print t,$NF}'