를 이용하여 time
원하는 스크립트의 실행시간 부분을 얻었는데 이를 하나의 숫자(30)로 나누어야 하는데 어떻게 해야 하나요?
....| awk '/^user/ {interest=($2)/(30);print "Time user divide by 30: " interest }'
$2에는 0m4.968s라는 결과가 있고 이를 30으로 나누어 인쇄하고 싶습니다.
답변1
해당 출력은 0m4.968s
Bash 내장의 기본 형식처럼 보입니다 time
. 의미 있는 계산을 하려면 분을 초로 변환해야 합니다. 그러나 출력 형식을 변경하는 것이 더 쉽습니다. 사용자 시간에만 관심이 있다면 설정에서 TIMEFORMAT=%U
해당 내용을 초 단위로 제공해야 합니다.
$ TIMEFORMAT=%U
$ time somecommand
4.968
내장의 출력을 파이핑하는 time
것은 전체 파이프라인의 시간을 측정하기를 원하기 때문에 약간 어색하지만 다음과 같이 해야 합니다.
$ (time somecommand ) 2>&1 | awk '{print $1 / 30}'
0.1656
또는 분과 초를 구분하여 원래 형식으로 시간을 구문 분석해야 한다면 다음과 같을 수 있습니다.
$ echo "user 0m4.968s" |
awk '/user/ {split($2, a, "m"); secs = a[1]*60 + a[2]; print secs / 30}'
0.1656