어제의 날짜에 대한 쉘 스크립트


16

폴더의 모든 파일에서 hazel 앱으로 다음 셸 스크립트를 실행하려고합니다. 작동하지만 문제를 일으키는 유일한 것은 어제 날짜입니다.

#! /bin/bash

saveDir="TJ"
dd=$(date --date='yesterday' +'%m-%d-%Y')
for file in *.csv ; do
    saveName="${saveDir}/TJ ${dd}.csv"
    cut -d',' -f2,14 "$file" > "$saveName"
done

왜 작동하지 않는 아이디어가 있습니까?

답변:


31

다음과 같이 날짜를 사용해보십시오.

dd=$(date -v -1d '+%m-%d-%y')

언급 한 바와 같이 yesterdayGNU Date의 일부이지만 -1d 오프셋을 사용하는 것은 OS X 사용과 동일해야합니다.


3

OS X에 번들로 제공되는 날짜 유틸리티는 GNU 날짜가 아닙니다 ( --date옵션 사용 가능).

homebrew 를 사용 하여 설치할 수 있습니다.

Perl을 사용하여 원하는 것을 얻을 수 있습니다.

perl -MPOSIX=strftime -le 'print strftime("%d-%m-%Y",localtime(time()-86400))'
# or
perl -MTime::Piece -MTime::Seconds -le 'print((Time::Piece->new - ONE_DAY)->dmy)'
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.