awk로 지난 10분 로그를 표시하는 중 오류가 발생했습니다.

awk로 지난 10분 로그를 표시하는 중 오류가 발생했습니다.

지난 10분 동안의 로그 데이터를 표시하려면 아래 명령을 사용하고 있습니다. 월이 동일하게 유지되면 제대로 작동하지만 월이 변경되면 데이터가 표시되지 않습니다.

awk -v d1="$D1" -v d2="$D2" '$0 > d1 && $0 < d2 || $0 ~ d2' /home/user.log

다음과 같은 경우에는 잘 작동합니다.

D1="Aug  1 12:00:00"
D2="Aug  1 12:10:00"

하지만 다음과 같은 경우 데이터가 표시되지 않습니다.

D1="Jul 31 11:55:00"
D2="Aug  1 00:05:00"

PS 저는 AIX를 사용하고 있습니다

답변1

나는 그것이 실제로 날짜가 아닌 문자열을 비교하기 때문이라고 믿습니다. 월이 변경되면 비교가 중단됩니다.

날짜 형식을 다른 방식(예: epoch 또는 숫자 날짜 형식)을 사용해 보십시오.

date -d "Jul 31 11:55:00" +%s

1533063300을 출력합니다. 마찬가지로,

date -d "Aug  1 00:05:00" +%s

1533107100을 출력합니다.

거기에서 쉽게 비교할 수 있어야합니다.

관련 정보