bash 스크립트에서 20170202와 같은 문자열을 날짜로 구문 분석하는 방법은 무엇입니까?

bash 스크립트에서 20170202와 같은 문자열을 날짜로 구문 분석하는 방법은 무엇입니까?

스크립트에 의해 생성된 여러 파일이 있고 다음 패턴을 따른다고 가정해 보겠습니다.

yyyymmdd_fileName.fileExtension

yyyymmdd(예: 20170202)는 연도가 2017년, 월이 2월, 날짜가 2일인 날짜입니다.

전체 파일 이름을 얻고 날짜 부분을 추출할 수 있다는 것을 알고 있지만 제공된 현재 날짜와 비교할 수 있도록 날짜 요소로 만드는 방법은 무엇입니까 date?

답변1

-darg 를 사용하세요 date.

man date

   -d, --date=STRING
          display time described by STRING, not 'now'
$ date -d 20170202
Thu Feb  2 00:00:00 CET 2017

쉬운 비교를 위해 unixdate 형식을 사용할 수 있습니다.

$ date -d 20170203 +%s
1486076400

답변2

또 다른 옵션은 를 사용하는 것입니다 touch. 이는 대부분의 시스템에서 작동하지만 시간을 지정해야 합니다 hhmm.ss. 나는 보통 1200.00.

touch -t 201702021200.00

관련 정보