Script de Shell para la fecha de ayer

16

Estoy tratando de ejecutar el siguiente shellscript con la aplicación hazel en cualquier archivo de la carpeta. Funciona, pero lo único que está causando un problema es la fecha de ayer.

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

¿Alguna idea de por qué no funciona?

Joe Bobby
fuente

Respuestas:

30

Intenta usar una fecha como esta:

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

como se mencionó yesterdayes parte de GNU Date, pero usar un desplazamiento de -1d debería ser equivalente para el uso de OS X.

l'L'l
fuente
3

La utilidad de fecha incluida con OS X no es la fecha GNU (que acepta la --dateopción).

Puedes usar homebrew para instalarlo.

Probablemente pueda usar Perl para obtener lo que desea:

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)'
Glenn Jackman
fuente