2011-09-30 1 views
1

CURL을 사용하여 웹 페이지를 긁어서 특정 날짜 값을 확인하는 Bash 스크립트 (Cygwin 사용)에서 작업하고 있습니다. 내 컬과 GREP 호출은 다음 줄을 초래할 :날짜 분석 및 최근 Bash에서의 최신 버전 확인

<span style="float:right">Last Update: 9/30/2011 3:16:31 AM</span><p>

하는 나는 그것이 마지막 n 일 이내 인 경우 확인 된 날에해야 할 일은. 어떻게 접근하는 가장 좋은 방법이며, 어떻게 날짜를 구문 분석해야합니까?

+0

참조 HT tp : //stackoverflow.com/questions/5655026/date-calculation-using-gnu-date 일반적인 아이디어입니다. 행운을 빕니다. – shellter

답변

2

뭔가 같은 :

DATESTRING="$(sed -e 's/.*Last Update: \([^<]*\)<.*/\1/' $MYINPUT)" 
UPDATE=$(date -d "$DATESTRING" +%s) 
EPOCH=$(date -d "-$n days" +%s) 
test "$UPDATE" -ge "$EPOCH" && echo "It's new!" 
0

필자가 Perl과 같은 다른 언어로 구문 분석하는 것이 가장 좋은 방법은 날짜를 구문 분석하기가 더 쉬울 것이므로 말하기를. Bash를 계속 사용하려면 --date 옵션을 man date에 확인하십시오.

+0

GNU date 명령은 놀랍게도 가능합니다. –

1

'날짜'프로그램은 해당 날짜 형식을 구문 분석 할 수 있어야합니다. 예를 들어 : 그래서

% date -d '9/30/2011 3:16:31 AM' 
Fri Sep 30 03:16:31 PDT 2011 

, 당신은 (신기원 이후 정수, 초) 떠들썩한 파티에서 사용할 수있는 뭔가가 변환 '날짜'를 사용할 수 있습니다

parseddate=$(something that extracts just the date from the line ...) 
date -d "$parseddate" +%s 

다음의 결과로 그 비교

date -d '3 days ago' +%s