Dünün Tarihi için Kabuk Betiği


16

Klasördeki herhangi bir dosya üzerinde ela uygulaması ile aşağıdaki shellscript yürütmeye çalışıyorum. İşe yarıyor, ama bir soruna neden olan tek şey dünün tarihi.

#! /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

Neden çalışmadığına dair bir fikrin var mı?

Yanıtlar:


31

Tarihi şu şekilde kullanmayı deneyin:

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

belirtildiği gibi yesterdayGNU Tarihinin bir parçasıdır, ancak -1d'lik bir ofset kullanmak OS X kullanımı için eşdeğer olmalıdır.


3

OS X ile birlikte gelen tarih yardımcı programı GNU tarihi değildir (bu --dateseçeneği kabul eder ).

Yüklemek için homebrew kullanabilirsiniz .

Muhtemelen Perl'i istediğinizi elde etmek için kullanabilirsiniz:

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)'
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.