生成bash脚本以处理日期时间戳

时间:2017-11-08 17:49:02

标签: bash date datetime

我有数千个备份文件,一般格式为PICU_XX-YYYYYYYYYYY.Stp,其中XX是数字,YYYYYYYYY是Unix时间戳。当我使用Windows文件的日期和时间时,手动搜索这些文件是困难和错误的。我希望能够使用生成的unix日期时间戳来搜索这些文件。

示例文件结构

./PICU_06-1328483198.Stp
./PICU_06-1328580000.Stp
./PICU_06-1329124034.Stp
./PICU_06-1329593129.Stp
./PICU_06-1329868449.Stp
./PICU_06-1329934425.Stp

我正在尝试生成一个小程序,它将获取输入日期/时间,将其转换为Unix timedate系统,然后找到最接近日期/时间的文件。

日期示例:02/18/2012 17:25:29

位置示例:06

日期将转换为1329607529.下一步是在该时间和日期戳之前和之后找到最接近的文件。所以它需要PICU_06并找到./PICU_06-1329593129.Stp& ./PICU_06-1329868449.Stp

开始我的代码:

echo Please enter LOCATION to search for. EX: 01 13 09A 22
read location
echo thanks
echo --------------------------------------------------

echo Please enter time to search for in MILITARY time.  Ex: MM/DD/YYYY HH:MM:SS
read startdatetime
echo thanks
echo --------------------------------------------------

date --date=\'$startdatetime\' +"%s"

就目前而言,我无法在脚本中使用日期时间来生成要搜索的文件名的后半部分。

我得到的一些错误是:

日期:额外操作数'+“%s”'

日期:参数'02:34:33''缺少前导'+'; 当使用选项指定日期时,任何非选项 参数必须是以“+”开头的格式字符串

1 个答案:

答案 0 :(得分:0)

在输出时间戳之前指定输入日期格式:

date -jf '%d/%m/%Y %H:%M:%S' $startdatetime +"%s"