Programing

MacOS의 쉘 스크립트에서 DATE를 UNIX TIMESTAMP로 변환하는 방법

lottogame 2020. 10. 26. 07:36
반응형

MacOS의 쉘 스크립트에서 DATE를 UNIX TIMESTAMP로 변환하는 방법


Linux에서는 "2010-10-02"와 같은 날짜를 쉘 스크립트의 유닉스 타임 스탬프로 다음과 같이 변환 할 수 있습니다.

date -d "2010-10-02" "+%s"

Mac OS는 해당하지 않기 때문에 -d 에 대한 날짜를 . 쉘 스크립트에서 날짜를 유닉스 타임 스탬프로 변환하는 방법은 무엇입니까?


man date OSX에는이 예가 있습니다.

date -j -f "%a %b %d %T %Z %Y" "`date`" "+%s"

나는 당신이 원하는 것을 생각합니다.

특정 날짜에 사용할 수 있습니다.

date -j -f "%a %b %d %T %Z %Y" "Tue Sep 28 19:35:15 EDT 2010" "+%s"

또는 원하는 형식을 사용하십시오.


date +%s

이것은 OS X Lion에서 잘 작동합니다.


date -j -f "%Y-%m-%d" "2010-10-02" "+%s"


Mac OSX에서 다음을 사용했습니다.

currDate=`date +%Y%m%d`
epochDate=$(date -j -f "%Y%m%d" "${currDate}" "+%s")

또는 다음과 같이 GNU 날짜를 설치할 수 있습니다.

  1. Homebrew 설치 : https://brew.sh/
  2. brew install coreutils
  3. bash_profile에 추가하십시오. alias date="/usr/local/bin/gdate"
  4. date +%s 1547838127

Mac은 "다르다"라는 댓글은 단순히 댓글 작성자가 UNIX의 역사에 대해 무지하다는 것을 나타냅니다. macOS는 Linux보다 훨씬 오래된 BSD UNIX를 기반으로합니다. Linux는 본질적으로 다른 UNIX 시스템의 사본이었으며 Linux는 BSD 도구 대신 GNU 도구를 채택하여 "다르다"고 결정했습니다. GNU 도구는 사용자 친화적이지만 일반적으로 * BSD 시스템에서 찾을 수 없습니다 (그냥있는 그대로).

실제로 대부분의 시간을 Linux에서 보내지 만 Mac 데스크톱이 있다면 Mac 이 Linux처럼 작동하도록 만들고 싶을 것입니다 . BSD와 GNU / Linux 쉘 모두에서 실행하려는 유틸리티를 작성하지 않는 한, 두 가지 다른 옵션 세트 또는 Bash의 Mac BSD 버전 스크립팅을 기억하려는 것은 의미가 없습니다.

참고 URL : https://stackoverflow.com/questions/3817750/how-to-convert-date-to-unix-timestamp-in-shell-script-on-macos

반응형