Сценарий оболочки для вчерашней даты

Я пытаюсь выполнить следующий shellscript с помощью приложения hazel в любом файле в папке. Это работает, но единственное, что вызывает проблему, - это дата для вчерашнего дня.

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

Любые идеи, почему он не работает?

13 голосов | спросил Joe Bobby 2 Jpm1000000pmThu, 02 Jan 2014 23:42:34 +040014 2014, 23:42:34

1 ответ


3

Утилита date, поставляемая с OS X, не является датой GNU (которая принимает параметр --date).

Вы можете использовать homebrew , чтобы установить его.

Возможно, вы можете использовать Perl для получения того, что хотите:

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)'
ответил glenn jackman 3 Jam1000000amFri, 03 Jan 2014 00:02:02 +040014 2014, 00:02:02

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132