Script Shell pour la date d'hier


16

J'essaie d'exécuter le shellscript suivant avec l'application Hazel sur n'importe quel fichier du dossier. Cela fonctionne, mais la seule chose qui cause un problème est la date d'hier.

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

Des idées pourquoi cela ne fonctionne pas?

Réponses:


30

Essayez d'utiliser une date comme celle-ci:

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

comme mentionné yesterdayfait partie de GNU Date, mais l'utilisation d'un décalage de -1d devrait être équivalente à l'utilisation d'OS X.


3

L'utilitaire de date fourni avec OS X n'est pas la date GNU (qui accepte l' --dateoption).

Vous pouvez utiliser homebrew pour l'installer.

Vous pouvez probablement utiliser Perl pour obtenir ce que vous voulez:

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)'
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.