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?

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.


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)'
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.