간단한 명령을 사용하여 로그 파일에서 데이터를 추출하려고 합니다.
다음은 파일의 샘플 라인입니다.
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