이 표현의 수를 어떻게 알 수 있나요?

이 표현의 수를 어떻게 알 수 있나요?

을 사용하여 time원하는 스크립트 실행 시간의 일부를 얻었지만 이를 숫자(30)로 나누어야 합니다. 어떻게 해야 합니까?

....| awk '/^user/ {interest=($2)/(30);print "Time user divide by 30: " interest }'

2$에서는 0m4.968s라는 결과를 얻었고 이를 30으로 나누어 인쇄하고 싶습니다.

답변1

출력은 0m4.968sBash에 내장된 기본 형식과 유사합니다 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

관련 정보