Shell Script per la data di ieri


16

Sto provando a 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 funzioni?

Risposte:


30

Prova a utilizzare la data in questo modo:

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

come accennato yesterdayfa parte di GNU Date, ma l'utilizzo di un offset di -1d dovrebbe essere equivalente all'uso di OS X.


3

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

Puoi usare 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)'
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.