Script de Shell para la date de ayer

Estoy intentando ejecutar el siguiente shellscript con la aplicación hazel en cualquier file de la carpeta. Funciona, pero lo único que causa un problema es la date 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 está funcionando?

  • ¿Cómo obtengo información de Wi-Fi desde el Terminal?
  • Mostrar files invisibles desde la línea de command
  • Activar bluetooth a través de terminal / línea de command
  • ¿Es posible crear un alias de Bash que ingrese una cierta cadena en la Terminal?
  • ¿Por qué Terminal.app corrompe mi historial tcsh?
  • ¿Qué commands de terminal son nuevos o actualizados en Mountain Lion?
  • Los personajes y la notificación rebotan cuando el Terminal pierde el foco
  • La pestaña de apertura en el terminal cambia el tamaño de la window
  • ¿Cómo puedo download todos los files MP3 de un website?
  • Cambiando el entorno de desarrollo a Homebrew
  • La console informa "sandboxd deny mach-lookup" ... ¿Debo modificar system.sb?
  • ¿Cómo agregar manualmente la key ssh a llavero?
  • 2 Solutions collect form web for “Script de Shell para la date de ayer”

    Intenta usar una date como esta:

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

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

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

    Puedes usar homebrew para instalarlo.

    Probablemente pueda usar Perl para get lo que quiere:

     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)' 
    Loving Apple Products like poisoning (iPhone, iPad, iMac, Macbook, iWatch).