grep, sed, awk 및 cut을 사용하여 로그에서 정보 가져오기

grep, sed, awk 및 cut을 사용하여 로그에서 정보 가져오기

간단한 명령을 사용하여 로그 파일에서 데이터를 추출하려고 합니다.

다음은 파일의 샘플 라인입니다.

128.101.35.183 - - [23/Mar/2008:00:03:10 +0000] "GET /javascript/email.js HTTP/1.1" 200 359 "http://www.cs.ucd.ie/Staff/AcademicStaff/bsmyth/"; "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12"

다음 형식으로 파일의 첫 번째 및 마지막 로그 항목의 날짜와 시간을 어떻게 얻을 수 있습니까?

2008년 3월 23일:00:03:10

다른 역할은 없나요?

답변1

로그 파일의 첫 번째 줄과 마지막 줄의 타임스탬프를 얻으려면 다음을 시도해 보세요.

{ head -n 1 my_log_file; tail -n 1 my_log_file; } | awk '{print $4}' | tr -d '['

그런데, 이것은 Apache 로그처럼 보입니다. 사용을 고려해 볼 수도 있습니다.로그 저장구조화된 로그를 구문 분석합니다.

답변2

awk -F"[][]" 'NR==1{sub(" .*","",$2);print $2}END{sub(" .*","",$2);print $2}' logfile

관련 정보