昨日の日付のシェルスクリプト


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

なぜ機能しないのか考えていますか?

回答:


30

次のような日付を使用してみてください。

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

前述のとおりyesterday、GNU 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.