나는 50개의 프로세스를 시작했고 하나의 파일 "say start_time"에는 프로세스가 시작된 시간을 저장하고 다른 파일 "say end_time"에는 프로세스가 완료된 시간을 저장합니다. 파일은 다음과 같습니다 -
Start time -
Start time for Process A : 15/09/26 21:02:13
Start time for Process B : 15/09/26 20:06:14
Start time for Process C : 15/09/26 13:20:52
Start time for Process D : 15/09/26 11:23:46
End time file
End time for Process B : 15/09/26 21:13:38
End time for Process D : 15/09/26 12:31:29
End time for Process A : 15/09/26 22:06:11
End time for Process C : 15/09/26 12:17:10
이제 각 프로세스의 실행 시간을 계산하고 싶습니다. 예를 들어 프로세스 A: 10분 프로세스 B: 5분 등.
답변1
나는 동의한다카스' 위의 설명은 아래와 같이 향후 형식을 다시 지정하지 않도록 올바른 로그 파일 날짜를 나타냅니다.
awk '
/:/{
d=$(NF-1)
gsub("/","",d)
"date +%s -d \""d" "$NF"\"" | getline m
if(/Start/)
D[$5]=-m
else
D[$5]+=m
END{
for(i in D)
print "Process", i, "time :", D[i], "sec"
}' file
프로세스의 종료 순서를 저장하려면 스크립트 끝을 다음과 같이 변경하면 됩니다.
… D[$5]=-m
else
print "Process", $5, "time :", D[$5] + m
}' file