어제 날짜를 기준으로 grep해야 하는 로그 파일이 있습니다. 어제 날짜를 구하는 방법.
로그 파일의 타임스탬프 형식은 다음과 같습니다.
Wed Sep 23
두 자리 숫자에 대해Wed Dec 1
한 자리
저는 date
GNU가 아닌 HP/UX를 사용하고 있습니다 date
.
답변1
Perl을 사용할 수 있기를 바랍니다
$ dt=`perl -e 'print substr(scalar localtime(time-86400),0,10)'`
$ echo "$dt"
Sat Dec 5
$ grep "$dt" <logfile>
perl
위 코드 에서는 time
epoch가 반환된 이후의 현재 시간(초)입니다. 어제를 얻으려면 86400초를 빼고 사람이 읽을 수 있는 형식으로 스칼라로 인쇄하세요. 어제의 형식만 원한다고 가정하므로 DAY MON DT
시간에 관계없이 오늘의 모든 행을 일치시키도록 grep할 수 있습니다. 필수 필드만 얻으려면 substr
처음 10자를 인쇄하고 dt
변수에 저장하세요. 이 변수를 와 함께 사용할 수 있습니다 grep
.
답변2
귀하의 질문이 형편없게 표현되었지만 제가 수집한 내용에 따르면 귀하는 다음과 같은 것을 찾고 있습니다.
date --date="-1 day" +"%a %b %-d"
이렇게 하면 로그 파일 조각에 제공한 것과 동일한 형식으로 어제 날짜가 제공됩니다. 다음을 수행하여 변수에 저장할 수 있습니다.
yesterday=$(date --date="-1 day" +"%a %b %-d")
또는 grep하려면 다음을 수행할 수 있습니다.
yesterday=$(date --date="-1 day" +"%a %b %-d") ; grep "$yesterday" <file name>
나는 당신의 질문에 대답할 수 있기를 바랍니다