지난 10분 동안의 로그를 표시하기 위해 awk를 사용하는 중에 오류가 발생했습니다.

지난 10분 동안의 로그를 표시하기 위해 awk를 사용하는 중에 오류가 발생했습니다.

아래 명령을 사용하여 지난 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을 출력합니다.

거기에서 비교하기 쉬워야합니다.

관련 정보