![동일한 프로세스의 두 파일에서 날짜 빼기](https://linux55.com/image/73829/%EB%8F%99%EC%9D%BC%ED%95%9C%20%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4%EC%9D%98%20%EB%91%90%20%ED%8C%8C%EC%9D%BC%EC%97%90%EC%84%9C%20%EB%82%A0%EC%A7%9C%20%EB%B9%BC%EA%B8%B0.png)
나는 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