로그 파일에서 지난 24시간 동안의 데이터를 추출하려고 합니다. 노력하고있어
awk -v d="$(date -d'24 hours ago' +'%Y-%m-%d %H:%M')" '$1" "$2>=d &&/ERROR/' data.log
이것은 패턴을 찾고 날짜가 연속해서 첫 번째인 경우 잘 작동합니다.
2016-03-06 1:59 ERROR --GOOD
2016-03-06 2:04 ERROR --GOOD
, 그러나 다른 경우에는 ""라는 단어가 포함된 모든 줄을 가져옵니다.실수" 그리고소홀히 하다날짜 범위.
내 data.log 파일은 다음과 같습니다.
ERROR [Thrift:28] 2016-03-04 01:26:07,949 CustomTThreadPoolServer.java:224 - Error occurred during processing of message. <br/>
ERROR [Thrift:24] 2016-03-04 01:26:07,952 CustomTThreadPoolServer.java:224 - Error occurred during processing of message.<br/>
ERROR [Thrift:9] 2016-03-04 01:26:07,958 CustomTThreadPoolServer.java:224 - Error occurred during processing of message.<br/>
ERROR [Thrift:3] 2016-03-04 01:26:07,961 CustomTThreadPoolServer.java:224 - Error occurred during processing of message.<br/>
ERROR [Thrift:7] 2016-03-05 01:26:07,966 CustomTThreadPoolServer.java:224 - Error occurred during processing of message.<br/>
ERROR [Thrift:30] 2016-03-06 01:26:07,979 CustomTThreadPoolServer.java:224 - Error occurred during processing of message.<br/>
ERROR [Thrift:29] 2016-03-06 01:26:07,989 CustomTThreadPoolServer.java:224 - Error occurred during processing of message.<br/>
ERROR [Thrift:31] 2016-03-06 01:26:07,991 CustomTThreadPoolServer.java:224 - Error occurred during processing of message.<br/>
어떤 도움이라도 대단히 감사하겠습니다. 감사해요
답변1
$1" "$2
날짜와 비교하고 있지만 $1
포함 ERROR
및 $2
포함 [Thrift:31]
등이 있습니다. 명백한 $3" "$4
.
print
프로그램이 예상한 대로 작동하지 않는 경우 변수 값을 확인하여 예상한 대로 작동하는지 확인할 수 있도록 몇 가지 s를 추가하는 것이 좋습니다 .