昨天日期的Shell脚本


16

我正在尝试使用hazel应用程序在文件夹中的任何文件上执行以下shellscript。它有效,但是唯一引起问题的是昨天的日期。

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

有什么想法为什么不起作用?

Answers:


31

尝试使用这样的日期:

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

如前所述,它yesterday是GNU Date的一部分,但是对于OS X使用,使用-1d偏移应该是等效的。


3

与OS X捆绑在一起的date实用程序不是GNU date(接受该--date选项)。

您可以使用自制软件安装它。

您可能可以使用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)'
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.