Shell Script para a data de ontem


16

Estou tentando executar o seguinte shellscript com app avelã em qualquer arquivo da pasta. Funciona, mas a única coisa que está causando um problema é a data de ontem.

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

Alguma idéia de por que não está funcionando?

Respostas:


30

Tente usar uma data como esta:

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

como mencionado yesterdayfaz parte da Data GNU, mas usar um deslocamento de -1d deve ser equivalente ao uso do OS X.


3

O utilitário de data incluído no OS X não é a data do GNU (que aceita a --dateopção).

Você pode usar o homebrew para instalá-lo.

Você provavelmente pode usar o Perl para obter o que deseja:

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)'
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.