18 votes

Shell script pour la date d'hier

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 pose 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

Une idée de la raison pour laquelle ça ne fonctionne pas ?

42voto

l'L'l Points 8737

Essayez d'utiliser la date comme ceci :

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

comme indiqué yesterday fait partie de GNU Date, mais utiliser un décalage de -1d devrait être équivalent pour une utilisation sous OS X.

3voto

glenn jackman Points 1869

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

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

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X