18 votos

Shell script para la fecha de ayer

Estoy tratando de ejecutar el siguiente shellscript con hazel app en cualquier archivo de la carpeta. Funciona, pero la única cosa 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?

42voto

Jordan W. Puntos 1083

Intenta usar la fecha así:

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

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

3voto

Mark Puntos 6

La utilidad de fecha incluida en OS X no es GNU date (que acepta el --date opción).

Puede utilizar homebrew para instalarlo.

Probablemente puedas usar Perl para conseguir lo que quieres:

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)'

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X