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

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

를 이용하여 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

관련 정보