어제 날짜를 가져와서 변수에 저장하는 방법

어제 날짜를 가져와서 변수에 저장하는 방법

어제 날짜를 기준으로 grep해야 하는 로그 파일이 있습니다. 어제 날짜를 구하는 방법.

로그 파일의 타임스탬프 형식은 다음과 같습니다.

  • Wed Sep 23두 자리 숫자에 대해
  • Wed Dec 1한 자리

저는 dateGNU가 아닌 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위 코드 에서는 timeepoch가 반환된 이후의 현재 시간(초)입니다. 어제를 얻으려면 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>

나는 당신의 질문에 대답할 수 있기를 바랍니다

관련 정보