Shell Script per la data di ieri

13

Sto provando ad eseguire il seguente shellscript con l'app nocciola su qualsiasi file nella cartella. Funziona, ma l'unica cosa che causa un problema è la data di ieri.

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

Qualche idea sul perché non funziona?

    
posta Joe Bobby 02.01.2014 - 20:42
fonte

2 risposte

24

Prova a utilizzare la data in questo modo:

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

come menzionato yesterday fa parte di GNU Date, ma l'utilizzo di un offset di -1d dovrebbe essere equivalente per l'uso di OS X.

    
risposta data 02.01.2014 - 21:02
fonte
3

L'utilità data in bundle con OS X non è la data GNU (che accetta l'opzione --date ).

Puoi utilizzare homebrew per installarlo.

Probabilmente puoi usare Perl per ottenere quello che vuoi:

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)'
    
risposta data 02.01.2014 - 21:02
fonte

Leggi altre domande sui tag